Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Networkx中绘制图形的长度_Python_Networkx - Fatal编程技术网

Python 如何在Networkx中绘制图形的长度

Python 如何在Networkx中绘制图形的长度,python,networkx,Python,Networkx,在networkx中,我发现绘制边的标签非常简单,但我如何绘制边的长度或相对距离 这是我的测试代码 G = nx.Graph() G.add_edge(0, 1, length=1) G.add_edge(0, 2, length=5) pos = nx.spring_layout(G) length = nx.get_node_attributes(G, 'length') 我的意思是,绘图应该显示节点之间的长度,因为边有其相应的长度。下面是一个例子 0和2之间的距离看起来比0和1之间的距

在networkx中,我发现绘制边的标签非常简单,但我如何绘制边的长度或相对距离

这是我的测试代码

G = nx.Graph()
G.add_edge(0, 1, length=1)
G.add_edge(0, 2, length=5)
pos = nx.spring_layout(G)
length = nx.get_node_attributes(G, 'length')
我的意思是,绘图应该显示节点之间的长度,因为边有其相应的长度。下面是一个例子


0和2之间的距离看起来比0和1之间的距离大。

您的示例将每条边的长度显示为文本标签。也就是说,文本给出了边的长度。但是,由于大多数网络不是嵌入在2D中的,因此它们无法定位在2D图片中,该图片为指定给图形的长度提供正确的透视图

例如,三角形图的长度可以是3、4和12。即使是具有有效边长度的有效图形,也无法在长度缩放版本中实现这些

如果将节点嵌入到2D平面中(将节点划分为2元组位置对),则可以使用该节点绘制网络。但是NetworkX并没有提供找到这种嵌入的方法。最近有一个使用NetworkX(#3040)进行平面度测试的请求

Aric Hagberg有一些处理平面图的代码。看看这条线:

@usr2564301,谢谢。我在问题中添加了一个草稿。谢谢你的链接。如果三角形图的长度为3、4和12,则该图无效。我想要的是画一个像地图一样的图表,就像美国地图一样,纽约和华盛顿之间的边界长度比地图上洛杉矶和华盛顿之间的边界长度要短得多。然而,Networkx中似乎没有这样的函数。我想说的是,长度为3、4和12的三角形图是有效的图。几乎任何为每条边指定长度的图形都不会嵌入到二维中。图形通常位于非常大的维空间中。我们只能通过投影到二维来绘制它们。