python 使用matplotlib画出桑葚图
时间: 2023-07-20 07:23:21 浏览: 140
Matplotlib 可以用来绘制桑基图,下面是绘制桑基图的基本步骤:
1. 导入相关库:
```
import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey
```
2. 创建画布和子图:
```
fig, ax = plt.subplots()
```
3. 定义桑基图的节点和流:
```
# 定义节点
labels = ['A', 'B', 'C', 'D', 'E']
# 定义流
flows = [
[1, -1, 0, 0, 0], # 流 A->B
[0, 1, -1, 0, 0], # 流 B->C
[0, 0, 1, -1, 0], # 流 C->D
[0, 0, 0, 1, -1], # 流 D->E
]
```
4. 使用 Sankey 绘制桑基图:
```
sankey = Sankey(ax=ax, scale=0.01, offset=0.2, head_angle=180)
sankey.add(flows=flows, labels=labels, orientations=[1, -1, 1, -1, 0], pathlengths=[0.25, 0.25, 0.25, 0.25], trunklength=1, facecolor='#37c959', edgecolor='k', lw=0.5)
sankey.finish()
```
5. 显示图形:
```
plt.show()
```
以上是一个简单的示例,更复杂的桑基图需要更多的节点和流。需要注意的是,Matplotlib 的语法较为复杂,需要一定的绘图基础,具体可以查看其文档和示例。
阅读全文