如何在Python中绘制年龄对应档案数量的散点图?
解决方法
要实现按年龄统计档案数量并绘图,不需要用df.query(它主要用于筛选行数据),更直接的方式是分组统计+可视化,步骤如下:
1. 统计各年龄的档案数量
利用groupby按AGE分组,再用size()统计每组的行数(即对应年龄的档案总数):
import pandas as pd sample_df = pd.DataFrame({'ID': [25,25,25,18,18,18], 'AGE': [11,11,12,11,12,13], 'RECORD':[1,2,2,1,1,2]}) # 分组统计,重置索引并命名统计列 count_by_age = sample_df.groupby('AGE').size().reset_index(name='档案数量')
运行后得到的count_by_age数据如下:
| AGE | 档案数量 |
|---|---|
| 11 | 3 |
| 12 | 2 |
| 13 | 1 |
2. 绘制关系图
用matplotlib绘制柱状图(也可根据需求改为折线图):
import matplotlib.pyplot as plt # 绘制柱状图 plt.bar(count_by_age['AGE'], count_by_age['档案数量']) # 设置图表标签和标题 plt.xlabel('年龄') plt.ylabel('档案数量') plt.title('不同年龄的档案数量分布') # 确保x轴显示所有存在的年龄值 plt.xticks(count_by_age['AGE']) # 显示图表 plt.show()
这段代码会生成x轴为年龄、y轴为对应档案数量的图表,完全符合你需要的效果,且不会显示每个ID的图例。
内容的提问来源于stack exchange,提问作者dspractician
相关产品推荐
相关产品推荐

