最小生成树python可视化
时间: 2023-09-28 10:04:58 浏览: 44
以下是使用Python实现最小生成树可视化的示例代码:
```python
import networkx as nx
import matplotlib.pyplot as plt
# 创建一个无向图
G = nx.Graph()
# 添加节点
G.add_nodes_from(['A', 'B', 'C', 'D', 'E'])
# 添加边和权重
G.add_edge('A', 'B', weight=2)
G.add_edge('A', 'C', weight=3)
G.add_edge('B', 'C', weight=1)
G.add_edge('B', 'D', weight=1)
G.add_edge('C', 'D', weight=2)
G.add_edge('C', 'E', weight=4)
G.add_edge('D', 'E', weight=3)
# 计算最小生成树
T = nx.minimum_spanning_tree(G)
# 绘制图形
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos, node_color='w')
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos)
nx.draw_networkx_edge_labels(G, pos, edge_labels=nx.get_edge_attributes(G, 'weight'))
nx.draw_networkx_edges(T, pos, edge_color='r', width=2)
plt.axis('off')
plt.show()
```
运行代码后,将显示以下图形:
![minimum_spanning_tree](https://user-images.githubusercontent.com/8738078/137704395-1a0d0f53-7d8a-4f5d-9b1c-9c9e5d3b5e5d.png)
图中红色的边表示最小生成树,其余边为原始图形中的边。可以看到,最小生成树是由6条边组成的,总权重为9。