networkx中的边长

时间:2017-10-17 06:45:24

标签: python python-2.7

我试图通过以下代码调整两个节点之间的边长。但显然它没有用。任何人都可以指导我在哪里犯错误:请注意我已经看过这个帖子(How to specify edge length in Networkx for calculating shortest distance?)但是没有解决我的问题

import networkx as nx
import matplotlib.pyplot as plt

G=nx.Graph()
G.add_nodes_from([1,2])
G.add_edge(1,2, length = 10)  # I also replaced length with len but no luck
nx.draw(G,with_labels=True)
plt.show() # display

2 个答案:

答案 0 :(得分:6)

这个怎么样:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()
G.add_nodes_from([1,2])
G.add_edge(1,2, length = 10)
pos = nx.spring_layout(G)
nx.draw(G, pos)
nx.draw_networkx_edge_labels(G, pos)
plt.show()

看起来像这样:

enter image description here

您还可以使用draw_networkx_edge_labels的参数来打印出您想要的内容。

答案 1 :(得分:-1)

import networkx as nx
import matplotlib.pyplot as plt
from pygraphviz import *

# use PyGraphviz to create the initial graph with lengths
A = AGraph()
nlist = ['a', 'b', 'c']
A.add_nodes_from(nlist)
A.add_edge('a','b',len=1)
A.add_edge('a','c',len=3)
A.add_edge('b','c',len=8)

# convert to NetworkX Graph from a PyGraphviz graph
G = nx.nx_agraph.from_agraph(A)
pos = nx.nx_agraph.graphviz_layout(G)
nx.draw(G, pos, with_labels=True)
nx.draw_networkx_edge_labels(G, pos)
plt.show()

输出图像如下所示: graph with predifined edge lengths