用Python 导入一个csv数据画桑基图
时间: 2023-11-05 09:18:20 浏览: 109
好的,以下是用Python导入CSV数据并画桑基图的示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 导入CSV数据
df = pd.read_csv('data.csv')
# 统计每个类别的数量
data = df.groupby('category').size().reset_index(name='counts')
# 计算每个类别的起始位置
data['start'] = data['counts'].shift(1).fillna(0).cumsum()
# 计算每个类别的结束位置
data['end'] = data['start'] + data['counts']
# 画出桑基图
plt.figure(figsize=(10, 6))
plt.bar(data['start'], data['counts'], width=data['counts'], color='blue', alpha=0.5)
plt.xlim(0, data['end'].iloc[-1])
plt.ylim(0, max(data['counts']) * 1.1)
plt.xticks((data['start'] + data['end']) / 2, data['category'], rotation=90)
plt.ylabel('数量')
plt.show()
```
其中,`data.csv`是你要导入的CSV文件名,文件中至少需要包含一个名为`category`的列用于分类,示例代码中默认数量统计的列名为`counts`,你可以根据自己的数据情况进行修改。运行示例代码后,就可以在窗口中看到生成的桑基图了。