在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')
我的意思是,图应显示节点之间的长度,因为edge具有相应的长度。这是示例
0和2之间的距离看起来比0和1之间的距离大。
答案 0 :(得分:1)
您的示例将每个边缘的长度显示为文本标签。也就是说,文本给出了边的长度。但是,由于大多数网络都不是2D嵌入的,因此无法将其放置在2D图片中,而2D图片却可以正确地说明分配给图形的长度。
例如,三角形图可以具有3、4和12的长度。即使它是具有有效边长的有效图,也不能在长度缩放版本中实现。
如果将节点嵌入到2D平面中(节点对2元组位置对的字典),则可以根据需要使用它来绘制网络。但是NetworkX没有提供找到此嵌入的方法。最近有一个使用NetworkX(#3040)进行平面度测试的Pull Request。
Aric Hagberg有一些可用于平面图的代码。看一下这个线程: https://groups.google.com/forum/#!topic/networkx-discuss/FdhFedwvtrc