我试图通过以下代码调整两个节点之间的边长。但显然它没有用。任何人都可以指导我在哪里犯错误:请注意我已经看过这个帖子(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
答案 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()
看起来像这样:
您还可以使用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