python dataframe某列数据要做成柱形图 自定义柱形图每个柱子的统计范围,每个柱子范围不一样,添加数据标签
时间: 2023-12-14 21:36:00 浏览: 63
你可以使用Matplotlib库来绘制柱形图,并自定义每个柱子的统计范围。
首先,你需要导入Matplotlib和Pandas库。然后,读取数据并将需要绘制柱形图的列筛选出来,使用`groupby()`方法对数据进行分组,按照你需要的范围统计每个柱子的数据,并绘制柱形图。
以下是一个示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('data.csv')
# 筛选需要绘制柱形图的列
col_name = 'score'
data = df[col_name]
# 自定义每个柱子的统计范围
bins = [0, 60, 70, 80, 90, 100]
# 统计每个柱子的数据
hist, edges = pd.cut(data, bins=bins, right=False, include_lowest=True, retbins=True)
counts = hist.value_counts()
# 绘制柱形图
plt.bar(counts.index.astype(str), counts.values)
# 添加数据标签
for i, v in enumerate(counts.values):
plt.text(i, v, str(v), ha='center', va='bottom')
# 设置图表标题和坐标轴标签
plt.title('Score Distribution')
plt.xlabel('Range')
plt.ylabel('Count')
# 显示图表
plt.show()
```
在上面的代码中,`pd.cut()`方法用于将数据按照指定的范围划分成不同的区间,返回每个数据所属的区间和区间边界值。`hist.value_counts()`方法用于统计每个区间的数据个数。
最后,使用Matplotlib的`bar()`方法绘制柱形图,使用`text()`方法添加数据标签,设置图表标题和坐标轴标签,并使用`show()`方法显示图表。
你可以根据自己的需要修改代码中的参数和设置,来绘制符合自己要求的柱形图。
阅读全文