pygraphviz_layout#

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

使用 Graphviz 为图 G 创建节点位置。

参数:
GNetworkX 图

使用 NetworkX 创建的图

prog字符串

Graphviz 布局程序的名称

root字符串, 可选

用于 twopi 布局的根节点

args字符串, 可选

Graphviz 布局程序的额外参数

返回:
node_pos字典

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

备注

如果使用复杂的节点对象,它们可能具有相同的字符串表示形式,并且 GraphViz 可能会将它们视为同一节点。布局可能会为这两个节点分配一个位置。请参阅 Issue #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 布局不保证是确定性的,更多信息请参阅 graphviz/graphviz#1767

示例

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