python怎么画有向多重图
时间: 2024-05-10 20:14:47 浏览: 188
在Python中,可以使用NetworkX库来绘制有向多重图。下面是一个简单的例子:
```python
import networkx as nx
import matplotlib.pyplot as plt
# 创建有向多重图对象
G = nx.MultiDiGraph()
# 添加节点
G.add_node(1)
G.add_node(2)
G.add_node(3)
# 添加边
G.add_edge(1, 2, weight=0.5)
G.add_edge(2, 3, weight=1.0)
G.add_edge(3, 1, weight=2.0)
G.add_edge(1, 2, weight=1.5)
# 绘制图形
pos = nx.circular_layout(G) # 定义节点的位置
nx.draw_networkx_nodes(G, pos) # 绘制节点
nx.draw_networkx_edges(G, pos) # 绘制边
nx.draw_networkx_edge_labels(G, pos, edge_labels={(1, 2, 0): '0.5', (1, 2, 1): '1.5', (2, 3, 0): '1.0', (3, 1, 0): '2.0'}) # 绘制边的权重
nx.draw_networkx_labels(G, pos, labels={1: '1', 2: '2', 3: '3'}) # 绘制节点的标签
plt.axis('off') # 关闭坐标轴
plt.show() # 显示图形
```
运行以上代码,将会得到一个有向多重图的图形。其中,节点的位置使用`nx.circular_layout()`方法定义,边的权重使用`nx.draw_networkx_edge_labels()`方法绘制。
阅读全文