给定图信息用python画连通无向图边有权值信息
时间: 2023-07-01 09:28:05 浏览: 98
要画连通无向图,可以使用 Python 中的 NetworkX 库。以下是一个简单的示例代码,可以根据给定的图信息画出连通无向图,并标注边的权值:
```python
import networkx as nx
import matplotlib.pyplot as plt
# 定义图信息
G = nx.Graph()
edges = [('A', 'B', 1), ('A', 'C', 2), ('B', 'D', 3), ('C', 'D', 4), ('C', 'E', 5), ('D', 'E', 6)]
# 添加边及权值
for edge in edges:
G.add_edge(edge[0], edge[1], weight=edge[2])
# 绘制图形
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos)
nx.draw_networkx_edge_labels(G, pos, edge_labels={(u, v): d['weight'] for u, v, d in G.edges(data=True)})
# 显示图形
plt.show()
```
在上面的示例代码中,我们首先定义了一个空的图 `G`,然后根据给定的边信息添加边及权值。接着,使用 `spring_layout` 来生成节点的位置信息,然后使用 `draw_networkx_nodes`、`draw_networkx_edges` 和 `draw_networkx_labels` 函数来绘制节点、边和标签。最后,使用 `draw_networkx_edge_labels` 函数来将边的权值标注在边上,然后通过 `plt.show()` 显示图形。
阅读全文