一、画图、Dijkstra最短路径
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
# topology construction logic
G.add_node('s1', desc='s1')
G.add_node('s2', desc='s2')
G.add_node('s3', desc='s3')
G.add_node('s4', desc='s4')
e = [('s1', 's2', 0.3), ('s2', 's3', 0.9), ('s1', 's3', 0.5), ('s3', 's4', 1.2)]
G.add_weighted_edges_from(e)
# draw graph with labels
pos = nx.spring_layout(G)
nx.draw(G, pos)
node_labels = nx.get_node_attributes(G, 'desc')
nx.draw_networkx_labels(G, pos, labels=node_labels)
plt.show()
#dijkstra最短路径
print(nx.dijkstra_path(G, 's1', 's4'))
结果如下:
['s1', 's3', 's4']
以及图片: