networkx.drawing.nx_agraph.pygraphviz_layout¶
-
pygraphviz_layout(G, prog='neato', root=None, args='')[source]¶ Create node positions for G using Graphviz.
- Parameters
G (
NetworkX graph) – A graph created with NetworkXprog (
string) – Name of Graphviz layout programroot (
string, optional) – Root node for twopi layoutargs (
string, optional) – Extra arguments to Graphviz layout programReturns (
dictionary) – Dictionary of x, y, positions keyed by node.
Examples
>>> G = nx.petersen_graph() >>> pos = nx.nx_agraph.graphviz_layout(G) >>> pos = nx.nx_agraph.graphviz_layout(G, prog='dot')
Notes
If you use complex node objects, they may have the same string representation and GraphViz could treat them as the same node. The layout may assign both nodes a single location. See Issue #1568 If this occurs in your case, consider relabeling the nodes just for the layout computation using something similar to:
H = nx.convert_node_labels_to_integers(G, label_attribute=’node_label’) H_layout = nx.nx_agraph.pygraphviz_layout(G, prog=’dot’) G_layout = {H.nodes[n][‘node_label’]: p for n, p in H_layout.items()}