最短路径问题python用什么画图
时间: 2023-08-13 11:39:05 浏览: 111
Python中可以使用matplotlib或者networkx库来画最短路径图。
使用matplotlib画图可以将节点和边分别用不同的颜色表示,使用箭头表示有向边。代码如下:
```python
import matplotlib.pyplot as plt
# 构建节点和边
nodes = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('E', 'G'), ('F', 'G')]
# 画图
fig, ax = plt.subplots()
for edge in edges:
ax.annotate("", xy=nodes.index(edge[1]), xytext=nodes.index(edge[0]), arrowprops=dict(arrowstyle="->"))
ax.scatter(*zip(*[(i, 0) for i in range(len(nodes))]))
for i, node in enumerate(nodes):
ax.annotate(node, (i, 0), xytext=(-8, -8), textcoords='offset points')
plt.show()
```
使用networkx库可以更方便地画图,并且支持更多的图形展示效果。代码如下:
```python
import networkx as nx
import matplotlib.pyplot as plt
# 构建节点和边
nodes = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('E', 'G'), ('F', 'G')]
# 构建图
G = nx.DiGraph()
G.add_nodes_from(nodes)
G.add_edges_from(edges)
# 画图
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos, {node: node for node in nodes})
plt.show()
```
阅读全文