在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之间的距离大。
发布于 2018-07-23 06:32:57
您的示例将每条边的长度显示为文本标签。也就是说,文本给出了边的长度。但是,由于大多数网络不是嵌入到2D中的,因此无法将它们定位在2D图片中,从而为分配给图形的长度提供正确的视角。
例如,三角形图的长度可以为3、4和12。即使它是具有有效边长度的有效图,也无法在长度缩放版本中实现。
如果你将节点嵌入到2D平面中(节点到2元组位置对的字典),你可以使用它来绘制你喜欢的网络。但是NetworkX没有提供找到这种嵌入的方法。最近有一个使用NetworkX进行平面性测试的拉取请求(#3040)。
Aric Hagberg有一些处理平面图的代码。看看这个帖子:https://groups.google.com/forum/#!topic/networkx-discuss/FdhFedwvtrc
https://stackoverflow.com/questions/51464123
复制相似问题