pygraphviz_layout#

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

创建G节点的位置使用Graphviz。

Parameters:
GNetworkX图

使用NetworkX创建的图

prog字符串

Graphviz布局程序的名称

root字符串, 可选

twopi布局的根节点

args字符串, 可选

Graphviz布局程序的额外参数

Returns:
node_pos字典

以节点为键的x, y位置字典。

Notes

如果你使用复杂的节点对象,它们可能具有相同的字符串表示,GraphViz可能会将它们视为同一个节点。 布局可能会为这两个节点分配一个位置。请参阅问题#1568。 如果这种情况发生在你的案例中,考虑在布局计算时重新标记节点,使用类似以下的方法:

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

请注意,某些Graphviz布局不能保证是确定性的, 更多信息请参见https://gitlab.com/graphviz/graphviz/-/issues/1767。

Examples

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