You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需生成百分比变量,用Stata绘制总统性别占比堆叠图

Stata绘制无冗余变量的年度男女总统占比堆叠图

数据集结构(示例)

年份性别总统人数女性总统人数男性总统人数总统总人数
2023男56511
2023女66511
2023总计116511
2022男3235
2022女2235
2022总计5235

需求说明

需绘制年度男女总统占比的堆叠图(每组年份内男女占比合计100%),要求不新增冗余百分比变量,导师建议使用catplot命令。

解决方案

1. 清理数据

首先删除数据中的“总计”行,避免干扰分组计算:

drop if 性别 == "总计"

2. 使用catplot绘制堆叠柱状图

利用catplot的percent(年份)选项,自动按年份分组计算性别占比,无需手动生成百分比变量:

catplot bar 总统人数, over(性别) over(年份) percent(年份) asyvars legend(rows(1)) ///
    title("1970-2023年男女总统占比堆叠图") ///
    ytitle("占比 (%)") ///
    xtitle("年份")
  • percent(年份):指定以年份为分组维度,计算每组内不同性别的占比
  • asyvars:将不同性别作为堆叠的类别,实现堆叠效果
  • legend(rows(1)):将图例横向排列,优化图表可读性

3. 可选:绘制堆叠折线图(延续趋势展示需求)

如果需要保留折线图的趋势呈现,只需将bar替换为line:

catplot line 总统人数, over(性别) over(年份) percent(年份) asyvars legend(rows(1)) ///
    title("1970-2023年男女总统占比趋势图") ///
    ytitle("占比 (%)") ///
    xtitle("年份")

说明

catplot的percent(varname)参数会自动基于指定分组变量的合计值计算占比,完全不需要提前生成百分比变量,符合导师对“无冗余变量”的要求。原数据中的总统总人数字段可无需使用,因为命令会自动按年份分组求和得到分母。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:58:28