请用python 生成一个 根据dataframe数据生成柱状图的方法,支持多个图例显示并能自动分类图例的颜色,支持中文标签的输入
时间: 2024-10-13 13:12:55 浏览: 9
在Python中,我们可以使用matplotlib库来创建柱状图,同时处理多图例、颜色分类以及中文标签。以下是一个简单的示例,展示如何生成一个DataFrame的数据柱状图:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 假设我们有如下DataFrame
df = pd.DataFrame({
'类别A': [4, 6, 8, 10],
'类别B': [5, 7, 9, 11],
'类别C': [3, 5, 7, 9]
}, index=['第1项', '第2项', '第3项', '第4项'])
# 定义颜色列表
colors = ['red', 'blue', 'green']
def plot_bar_chart(df, colors):
fig, ax = plt.subplots()
# 创建柱状图
for column in df.columns:
ax.bar(df.index, df[column], label=column, color=colors.pop(0))
# 设置中文标签
plt.xticks(rotation='vertical')
plt.xlabel('项目', fontproperties='SimHei') # 中文标签
plt.ylabel('值', fontproperties='SimHei')
# 添加图例
ax.legend(title='类别', loc='upper left', bbox_to_anchor=(1, 1), fontsize='small', facecolor='white')
plt.show()
plot_bar_chart(df, colors)
```
在这个例子中,我们首先读取一个DataFrame,并定义了一组颜色。然后,对于DataFrame中的每一列,我们创建了一个柱状图,并将列名作为图例。颜色从列表中按顺序取出,每绘制完一个柱形就从列表中移除,以便下一次循环使用。最后,我们设置了x轴和y轴的中文标签,图例也设置为中文。
阅读全文