首页 > 解决方案 > 设置 NetworkX 边长

问题描述

有没有办法在networkx图中设置边长?例如,我有以下代码设置第一条边长度 = 10,第二条边长度 = 1,但它们在实际图中具有相同的长度:

>>> import matplotlib.pyplot as plt
>>> import networkx as nx
>>> G = nx.DiGraph()
>>> G.add_edge('A', 'B', length = 1)
>>> G.add_edge('B', 'C', length=10)
>>> nx.draw(G, pos=nx.drawing.nx_agraph.graphviz_layout(G, prog='dot'))
>>> plt.show()

在此处输入图像描述

有没有办法使其中一个边缘的长度成为另一个边缘的 1/10?我希望它看起来像下面这样:

在此处输入图像描述

标签: pythongraphnetworkx

解决方案


您可以使用minlen.

>>> G = nx.DiGraph()
>>> G.add_edge('A', 'B', minlen = 1)
>>> G.add_edge('B', 'C', minlen = 10)
>>> nx.draw(G, pos=nx.drawing.nx_agraph.graphviz_layout(G, prog='dot'))
>>> plt.show()

在此处输入图像描述


推荐阅读