假设有一个包含学生姓名、年级和上网时长段的 DataFrame,根据这个dataframe绘制不同年纪不同上网时长段进行统计并绘制四张条形统计图
时间: 2024-02-05 14:05:12 浏览: 76
从列表或字典创建Pandas的DataFrame对象的方法
好的,这个问题需要根据年级和上网时长段来绘制四张条形统计图。你可以使用`pandas`库中的`DataFrame`类来读取数据并进行统计。接下来,使用`matplotlib`库来绘制条形统计图。
以下是一个示例代码,你可以参考一下:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('data.csv')
# 统计每个分类的频数
counts = data.groupby(['grade', 'duration']).size().reset_index(name='count')
# 设置不同颜色
colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728']
# 迭代每个年级
for grade in counts['grade'].unique():
# 获取该年级的数据
df = counts[counts['grade'] == grade]
# 绘制该年级的条形图
fig, ax = plt.subplots(figsize=(10, 6))
for i, duration in enumerate(df['duration']):
count = df.loc[df['duration'] == duration, 'count'].iloc[0]
ax.bar(duration, count, color=colors[i], label=f'{duration}')
ax.set_xlabel('Duration')
ax.set_ylabel('Count')
ax.set_title(f'Internet Usage by Grade {grade} and Duration')
ax.legend()
plt.show()
```
其中,`data.csv`是你的数据文件,它应该包含三列:`name`、`grade` 和 `duration`。`counts`是一个新的`DataFrame`,用于统计每个分类的频数,并且`colors`是你想要的不同颜色。
使用`unique()`函数来迭代每个年级,然后使用`loc()`函数获取该年级的数据,并使用`bar()`函数绘制每个分类的条形图。最后,你可以设置图例、标题、轴标签等,并使用`show()`函数显示图形。
希望这可以帮到你!
阅读全文