| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- """
- ========================
- DAG - Topological Layout
- ========================
- This example combines the `topological_generations` generator with
- `multipartite_layout` to show how to visualize a DAG in topologically-sorted
- order.
- """
- import networkx as nx
- import matplotlib.pyplot as plt
- G = nx.DiGraph(
- [
- ("f", "a"),
- ("a", "b"),
- ("a", "e"),
- ("b", "c"),
- ("b", "d"),
- ("d", "e"),
- ("f", "c"),
- ("f", "g"),
- ("h", "f"),
- ]
- )
- for layer, nodes in enumerate(nx.topological_generations(G)):
- # `multipartite_layout` expects the layer as a node attribute, so add the
- # numeric layer value as a node attribute
- for node in nodes:
- G.nodes[node]["layer"] = layer
- # Compute the multipartite_layout using the "layer" node attribute
- pos = nx.multipartite_layout(G, subset_key="layer")
- fig, ax = plt.subplots()
- nx.draw_networkx(G, pos=pos, ax=ax)
- ax.set_title("DAG layout in topological order")
- fig.tight_layout()
- plt.show()
|