加权图代码python
时间: 2024-10-18 19:02:03 浏览: 1
在Python中,特别是使用NetworkX库处理加权图,你可以创建一个字典或者二维列表来存储边的权重。下面是一个简单的例子:
```python
import networkx as nx
# 创建一个加权无向图
G = nx.Graph()
# 边的定义,这里边是由两个节点组成,后面跟着它们之间的权重
edges_and_weights = [('A', 'B', 0.8), ('B', 'C', 1.2), ('C', 'A', 0.9), ('D', 'E', 0.6)]
# 添加边及其权重到图中
for edge, weight in edges_and_weights:
G.add_edge(edge[0], edge[1], weight=weight)
# 打印出部分信息
print("Edges and weights:")
for edge, data in G.edges(data=True):
print(f"{edge}: {data['weight']}")
# 可视化时,如果你想展示边的权重,可以在调用draw时传入edge_color参数
nx.draw(G, with_labels=True, edge_color=[G[u][v]['weight'] for u, v in G.edges])
```
在这个例子中,我们首先导入了networkx模块,然后创建了一个无向图`G`。通过`add_edge`方法,我们可以给每条边指定一个权重。最后,我们可以遍历图的边并打印它们的权重,或者在可视化时通过边色来反映权重。
阅读全文