pydot_layout#

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

使用 pydot 和 Graphviz 创建节点位置。

参数:
G

要进行布局的 NetworkX 图。

progstring (默认为 ‘neato’)

用于布局的 GraphViz 命令名称。选项取决于 GraphViz 版本,可能包括:‘dot’, ‘twopi’, ‘fdp’, ‘sfdp’, ‘circo’

root来自 G 的节点或 None (默认为 None)

G 中用于开始某些布局算法的节点。

返回:
dict

以节点为键的位置字典。

注意

如果您使用复杂的节点对象,它们可能具有相同的字符串表示形式,GraphViz 可能会将它们视为同一节点。布局可能会为这两个节点分配一个位置。参见 Issue #1568 如果您的项目中发生这种情况,请考虑仅为布局计算而重新标记节点,类似于使用以下方式:

H = nx.convert_node_labels_to_integers(G, label_attribute="node_label")
H_layout = nx.nx_pydot.pydot_layout(H, prog="dot")
G_layout = {H.nodes[n]["node_label"]: p for n, p in H_layout.items()}

示例

>>> G = nx.complete_graph(4)
>>> pos = nx.nx_pydot.pydot_layout(G)
>>> pos = nx.nx_pydot.pydot_layout(G, prog="dot")