python画桑基图
时间: 2023-08-27 08:16:26 浏览: 190
要使用Python绘制桑基图,你可以使用matplotlib和seaborn这两个常用的数据可视化库。下面是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import seaborn as sns
# 创建数据
labels = ['A', 'B', 'C', 'D']
values = [30, 50, 20, 40]
categories = ['Category 1', 'Category 2', 'Category 3']
# 绘制桑基图
fig, ax = plt.subplots(figsize=(8, 6))
sankey = sns.color_palette('Paired', len(categories))
sns.heatmap([[0, values[0], values[0], 0],
[0, 0, values[1], values[1]],
[0, 0, 0, values[2]],
[0, 0, 0, 0]],
annot=True,
fmt='d',
cmap=sankey,
xticklabels=categories,
yticklabels=labels,
cbar=False,
ax=ax)
# 添加标签
for i in range(len(labels)):
plt.text(-0.5, i+0.5, labels[i], ha='center', va='center', fontsize=12)
plt.text(1.5, 3.5, 'Total: {}'.format(sum(values)), ha='center', va='center', fontsize=12)
# 设置标题和坐标轴标签
plt.title('Sankey Diagram')
plt.xlabel('Categories')
plt.ylabel('Labels')
# 显示图形
plt.show()
```
在这个示例中,我假设有4个标签(A、B、C、D)和3个类别(Category 1、Category 2、Category 3)。你可以根据自己的需求修改这些标签和类别,并调整数据列表。运行这段代码将生成一个桑基图,显示各个标签之间的流动关系和数值。
阅读全文