python 根据dataframe 生成柱状图 有多个图例
时间: 2024-10-14 07:02:50 浏览: 40
在Python中,你可以使用matplotlib库中的DataFrame.plot()函数结合其他功能来创建带有多个图例的柱状图。这里是一个基本示例:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 假设你有一个包含数据的DataFrame df
df = pd.DataFrame({
'Category1': [5, 7, 8, 9],
'Category2': [3, 6, 4, 10],
'Category3': [2, 5, 7, 6]
})
# 创建柱状图
plt.figure(figsize=(10,6)) # 设置图表尺寸
ax = df.plot(kind='bar', stacked=True) # 使用stacked=True实现堆叠柱形图
# 添加图例
legend_elements = [
Patch(facecolor=df['Category1'][0], label='Category1'),
Patch(facecolor=df['Category2'][0], label='Category2'),
Patch(facecolor=df['Category3'][0], label='Category3')
]
ax.legend(handles=legend_elements)
# 显示图例并显示图形
plt.legend(title='Categories') # 图例标题
plt.show()
```
在这个例子中,我们首先创建了一个带有三个类别(Category1、Category2和Category3)的DataFrame,并通过`plot(kind='bar', stacked=True)`绘制了堆叠柱状图。然后,我们手动创建了几个Patch对象来代表每个类别的颜色,并添加到图例中。
阅读全文
相关推荐


















