python dataframe某列数据要做成柱形图 自定义柱形图每个柱子的统计范围,每个柱子范围不一样,添加数据标签
时间: 2023-12-14 22:35:57 浏览: 71
要自定义每个柱子的统计范围,需要先对数据进行分组,然后使用`matplotlib`库绘制柱形图,并添加数据标签。以下是一个示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = pd.DataFrame({'value': [10, 20, 25, 30, 35, 40, 45, 50, 55, 60],
'group': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C']})
# 对数据进行分组,分别计算每个组的最小值、最大值和平均值
grouped = data.groupby('group').agg({'value': ['min', 'max', 'mean']})
# 绘制柱形图
fig, ax = plt.subplots()
width = 0.5
x = range(len(grouped))
ax.bar(x, grouped['value']['mean'], width, color='b', alpha=0.5)
# 添加数据标签
for i, v in enumerate(x):
ax.text(v - width/2, grouped['value']['mean'][i] + 1, str(grouped['value']['mean'][i]), ha='center')
# 设置x轴刻度和标签
ax.set_xticks(x)
ax.set_xticklabels(grouped.index)
# 设置y轴标签和标题
ax.set_ylabel('Value')
ax.set_title('Customized Bar Plot')
plt.show()
```
在这个示例中,我们首先创建了一个包含组名和数值的`DataFrame`,然后使用`groupby`方法对数据进行分组,计算每个组的最小值、最大值和平均值。接着使用`matplotlib`库绘制柱形图,并通过`text`方法添加数据标签。最后设置x轴刻度和标签、y轴标签和标题,并显示图形。
阅读全文