桑基图 python_Python制作桑基图
时间: 2023-12-10 09:26:47 浏览: 119
要制作桑基图,可以使用Python中的matplotlib库和pandas库。
以下是一个简单的示例代码,展示了如何使用这些库来制作一个桑基图:
``` python
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey
# 创建数据框
data = pd.DataFrame({
'来源': ['A', 'A', 'B', 'B'],
'去向': ['B', 'C', 'C', 'D'],
'数量': [10, 20, 30, 40]
})
# 创建Sankey图
sankey = Sankey(flows=data['数量'], labels=data['来源'].tolist() + data['去向'].tolist())
# 添加路径
for i in range(len(data)):
sankey.add(flows=[data.iloc[i]['数量'], 0, 0, -data.iloc[i]['数量']],
labels=[data.iloc[i]['来源'], data.iloc[i]['去向'], '', ''])
# 绘制图形
sankey.finish()
plt.show()
```
这段代码使用了pandas库创建了一个数据框,其中包含了源和目标节点之间的流量。然后,使用matplotlib库的Sankey函数来创建桑基图。最后,通过添加路径来指定数据,并调用finish()函数完成绘制。
你可以根据自己的需求修改这段代码,来制作自己需要的桑基图。
阅读全文