A package for NestedGraphs.jl to make easy visualizations.
This package exports ngraphplot
, which provides some extra features on top of GraphMakie.graphplot
.
All features of GraphMakie.graphplot
can be accesssed whatsoever.
See the API docs.
Some examples of NestedGraph
visualizations:
using Graphs, NestedGraphs, NestedGraphsMakie, GLMakie
ngm = let
g1 = complete_graph(3)
g2 = complete_graph(3)
g3 = complete_graph(3)
g4 = complete_graph(4)
eds = [((1,1), (2,1)), ((3,2), (2,1)), ((3,3),(2,3)), ((1,1),(4,1))]
ng = NestedGraph([g1,g2,g3,g4], eds, both_ways=true)
ng1 = NestedGraph([g1,g2], [((1,1), (2,1))])
ng2 = NestedGraph([g3,g4], [((1,2), (2,2)), ((1,3), (2,3))])
NestedGraph([ng1, ng2], [((1,1),(2,1)), ((1,5),(2,2))], both_ways=true)
end
ngraphplot(ngm)
It turns out it's quite hard to visualize all nested subgraphs. Currently the following requires a rather heavy dependency.
ngraphplot(ngm, show_subgraph_regions=true)
mlg = let
layer1 = complete_graph(4)
layer2 = barabasi_albert(4, 3; seed=123)
layer3 = SimpleGraph(3)
add_edge!(layer3, 1,2)
add_edge!(layer3, 2,3)
mlg = NestedGraph([layer1, layer2, layer3])
for v in 1:(nv(layer2)-1)
add_edge!(mlg, NestedEdge(1,v, 2,v))
end
for v in 1:(nv(layer3)-1)
add_edge!(mlg, NestedEdge(2,v, 3,v))
end
add_edge!(mlg, NestedEdge(1,4, 3,3))
mlg
end
ngraphplot(mlg; multilayer=true, nlabels=repr.(mlg.vmap))