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() 画布太小了调大点
时间: 2023-12-14 11:36:11 浏览: 162
pandas.read_csv参数详解(小结)
你可以在绘制图表前,添加如下代码来设置画布大小:
```
fig, ax = plt.subplots(figsize=(8, 6))
```
其中,`figsize=(8, 6)` 表示画布的宽度为 8,高度为 6(单位是英寸)。你可以根据需要调整这个值,使得图表更加清晰易读。修改后的完整代码如下:
```
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()
# 设置画布大小
fig, ax = plt.subplots(figsize=(8, 6))
# 绘制柱形图
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()
```
阅读全文