用dataframe对不同年纪不同上网时长段进行统计并绘制一张条形统计图,每个分类不同颜色
时间: 2024-01-16 18:04:25 浏览: 74
Python处理JSON数据并生成条形图
好的,这个问题和上一个问题类似,只是统计的变量不同。你可以参考前面的代码,稍作修改即可。
首先,你需要准备好数据,包括年龄、上网时长段以及对应的频数。然后,使用`pandas`库中的`DataFrame`类来读取数据并进行统计。接下来,使用`matplotlib`库来绘制条形统计图。
以下是一个示例代码,你可以参考一下:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('data.csv')
# 统计每个分类的频数
counts = data.groupby(['age', 'duration']).size().reset_index(name='count')
# 绘制条形图
fig, ax = plt.subplots(figsize=(10, 6))
# 设置不同颜色
colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728']
# 绘制每个分类的条形图
for i, age in enumerate(counts['age'].unique()):
df = counts[counts['age'] == age]
ax.bar(df['duration'], df['count'], color=colors[i], label=f'Age {age}')
# 添加图例、标题等
ax.legend()
ax.set_xlabel('Duration')
ax.set_ylabel('Count')
ax.set_title('Internet Usage by Age and Duration')
# 显示图形
plt.show()
```
其中,`data.csv`是你的数据文件,它应该包含三列:`age`、`duration` 和 `count`。`counts`是一个新的`DataFrame`,用于统计每个分类的频数,并且`colors`是你想要的不同颜色。
使用`enumerate()`函数来迭代每个年龄组,然后使用`bar()`函数绘制每个分类的条形图。最后,你可以设置图例、标题、轴标签等,并使用`show()`函数显示图形。
希望这可以帮到你!
阅读全文