python画桑基图代码
时间: 2023-10-14 19:30:50 浏览: 42
以下是使用matplotlib库绘制桑基图的Python代码:
```python
import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey
# 定义桑基图的输入数据
flows = [30, 20, 10, -15, -25, -5]
labels = ['流入1', '流入2', '流入3', '流出1', '流出2', '流出3']
orientations = [1, 1, 0, -1, -1, 0]
# 创建桑基图对象
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[])
# 绘制桑基图
sankey = Sankey(ax=ax, scale=0.01, offset=0.2, head_angle=180, format='%.0f')
sankey.add(flows=flows, labels=labels, orientations=orientations,
pathlengths=[0.05]*len(flows), trunklength=0.2, facecolor='#37c9e1',
edgecolor='#37c9e1', lw=1.5, gap=0.5, radius=0.1)
diagrams = sankey.finish()
# 显示图形
plt.title('Sankey Diagram')
plt.show()
```
在上述代码中,我们使用了matplotlib库的Sankey类来绘制桑基图。通过定义输入数据flows、labels和orientations,我们可以控制桑基图中每个节点的流入和流出情况。在创建桑基图对象之后,我们可以通过一系列参数设置来调整桑基图的样式和外观,例如设置颜色、线宽、节点大小等。最后,我们调用finish()方法来完成桑基图的绘制,并将结果显示出来。