我正在学习图形,所以我想使用Python中的networkx和matplotlib绘制给定字典的图形,这是我的代码:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
graph = {
"A":["B","C"],
"B":["D","E"],
"C":["E","F"],
"D":["B","G"],
"E":["B","C"],
"F":["C","G"],
"G":["D","F"]
}
x=10
for vertex, edges in graph.items():
G.add_node("%s" % vertex)
x+=2
for edge in edges:
G.add_node("%s" % edge)
G.add_edge("%s" % vertex, "%s" % edge, weight = x)
print("'%s' it connects with '%s'" % (vertex,edge))
nx.draw(G,with_labels=True)
plt.show()
我已经尝试使用函数draw_networkx_edge_labels,但似乎需要一个位置,而我没有这个位置,因为我是动态添加节点的,所以我需要一种方法来绘制边缘标签,以适应我的当前实现。