You need to enable JavaScript to run this app. pandas百分比堆叠柱状图如何在X轴标签旁展示分组样本量
优惠活动
大模型
产品
解决方案
定价
更多

pandas百分比堆叠柱状图如何在X轴标签旁展示分组样本量

实现x轴标签附带对应样本量的方法

核心实现逻辑

完全不需要改动原有堆叠柱状图的核心绘制逻辑,只要把默认的x轴标签换成拼接了样本量的自定义文本即可。pandas绘制分类柱状图时,每个柱子的位置和分类顺序严格一一对应,替换文本不会打乱柱子和标签的匹配关系。

具体操作步骤

  • 第一步,提前计算每个年龄分组的总样本量:直接对原DataFrame的每一行做求和,得到的结果和原DataFrame的索引完全对齐,无需额外做匹配
    # 计算每个分组的总样本数,按行求和
    group_sample_size = table.sum(axis=1)
    
  • 第二步,按格式拼接自定义x轴标签,把样本量用括号包裹在原年龄标签后面
    # 拼接为类似"18-24 (n=78)"的格式,n=是学术绘图的通用标注,方便读者快速识别数值含义
    custom_x_labels = [
        f"{age_bin} (n={sample_num})" 
        for age_bin, sample_num in zip(table.index, group_sample_size)
    ]
    
  • 第三步,替换原有绘图代码里的x轴刻度设置,应用自定义标签
    把原来代码里的plt.xticks(fontsize=15, rotation=45)部分,替换为明确指定刻度位置+自定义标签的代码,避免不同matplotlib版本的兼容警告
    # 明确指定每个柱子对应的x轴刻度位置(从0开始的整数,和柱子顺序一一对应)
    ax.set_xticks(range(len(table.index)))
    # 应用自定义标签,保留原有字体大小、旋转角度的设置
    ax.set_xticklabels(
        custom_x_labels,
        fontsize=15,
        rotation=45
    )
    

整合后的完整可运行代码

# 计算百分比占比用于堆叠绘图
percent_table = table.div(table.sum(1).astype(float), axis=0).mul(100.0)
ax = percent_table.plot(
    kind='bar', 
    stacked=True, 
    cmap = 'Blues', 
    fontsize=15, 
    figsize = (8,8)
)

# 原有图例设置
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles[::-1], labels[::-1], loc='upper right', fontsize=10)

# 原有轴标签设置
ax.set_xlabel('', fontsize = 20)
ax.set_ylabel('Percentage of total respondents', fontsize = 20)

# 新增:生成带样本量的自定义x轴标签
group_sample_size = table.sum(axis=1)
custom_x_labels = [
    f"{age_bin} (n={sample_num})" 
    for age_bin, sample_num in zip(table.index, group_sample_size)
]

# 替换原有xticks配置
ax.set_xticks(range(len(table.index)))
ax.set_xticklabels(
    custom_x_labels,
    fontsize=15,
    rotation=45
)

# 原有y轴范围设置
ax.set_ylim(0,100)

效果说明

按照给出的示例数据,三个分组计算得到的样本量分别是78、145、11,最终x轴显示的标签就会是18-24 (n=78)、25-44 (n=145)、45-64 (n=11),直接展示在对应柱子的正下方,和原有标签的位置完全一致。如果不需要标注n=字样,只要把拼接的文本改成f"{age_bin} ({sample_num})"即可,可按实际格式需求灵活调整。


内容的提问来源于stack exchange,提问作者Debjit Bhowmick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 17:45:06