networkx.drawing.nx_agraph.pygraphviz_layout

pygraphviz_layout(G, prog='neato', root=None, args='')[source]

Create node positions for G using Graphviz.

Parameters
GNetworkX graph

A graph created with NetworkX

progstring

Name of Graphviz layout program

rootstring, optional

Root node for twopi layout

argsstring, optional

Extra arguments to Graphviz layout program

Returns
node_posdict

Dictionary of x, y, positions keyed by node.

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()}

Examples

>>> G = nx.petersen_graph()
>>> pos = nx.nx_agraph.graphviz_layout(G)
>>> pos = nx.nx_agraph.graphviz_layout(G, prog="dot")