已有年龄与对应乘客数数据集,如何制作正确的乘客年龄直方图?
解决方法
首先明确:你手里的是已经汇总好的年龄-乘客数数据,普通直方图是对原始数据自动分箱计数,直接调用直方图函数会不符合需求,你需要的是柱状图(Bar Plot),它能直接展示预定义类别(年龄段)对应的数值(乘客数)。
以下是几种常用工具的实现方式:
Python(Matplotlib)
假设你的数据是两个列表:age_groups(比如["0-10", "11-20", ...])和passenger_counts(对应每个年龄段的乘客数),代码如下:
import matplotlib.pyplot as plt # 示例数据 age_groups = ["0-10", "11-20", "21-30", "31-40", "41-50"] passenger_counts = [25, 42, 58, 36, 19] plt.bar(age_groups, passenger_counts, width=0.6) plt.xlabel("年龄段") plt.ylabel("乘客数量") plt.title("各年龄段乘客数量分布") plt.xticks(rotation=45) # 旋转x轴标签避免重叠 plt.show()
Python(Seaborn)
如果用Seaborn,需要把数据整理成DataFrame格式:
import seaborn as sns import pandas as pd # 示例DataFrame df = pd.DataFrame({ "年龄段": ["0-10", "11-20", "21-30", "31-40", "41-50"], "乘客数": [25, 42, 58, 36, 19] }) sns.barplot(x="年龄段", y="乘客数", data=df) plt.xlabel("年龄段") plt.ylabel("乘客数量") plt.title("各年龄段乘客数量分布") plt.xticks(rotation=45) plt.show()
Excel操作步骤
- 把年龄组和乘客数分别放在两列(比如A列是年龄段,B列是乘客数)
- 选中两列数据,点击插入选项卡,选择柱状图(推荐簇状柱状图)
- 按需调整图表标题、坐标轴标签即可
关键提醒
不要用直方图工具处理已汇总的数据——直方图的核心是对原始未分组数据自动分箱并统计每组的频数,而你已经有了分组后的频数,柱状图才是正确的选择。
内容的提问来源于stack exchange,提问作者Kari
相关产品推荐
相关产品推荐

