使用Stata绘制双变量分类占比堆叠条形图问题咨询
Stata两时点疫苗接种意愿堆叠条形图实现方案
- 首先确认两个原始接种意愿变量的取值统一编码,示例默认编码规则为1=是、2=否、3=不确定,提前清理数据中的缺失值与异常值
- 若数据集没有唯一的受访者标识字段,先执行
gen id = _n生成唯一ID
* 重命名原始变量,示例中初始变量为will1(第一时点)、will2(第二时点),可根据你的实际变量名调整 ren will1 接种意愿1 ren will2 接种意愿2 * 宽格式数据转长格式 reshape long 接种意愿, i(id) j(调研时点) * 统计各时点不同接种意愿的人群占比 bys 调研时点 接种意愿: gen cnt = _N bys 调研时点: gen total = _N gen 占比 = cnt / total * 100 duplicates drop 调研时点 接种意愿, force
* 绘制纵向堆叠占比条形图 graph bar (sum) 占比, over(调研时点, relabel(1 "第一时点" 2 "第二时点")) stack /// ytitle("人群占比(%)") blabel(bar, format(%3.1f) position(inside)) /// legend(label(1 "是") label(2 "否") label(3 "不确定")) /// bar(1, color(forest_green)) bar(2, color(cranberry)) bar(3, color(navy)) /// ylabel(0(20)100, grid) title("两时点疫苗接种意愿分布对比")
- 若你的变量编码规则和示例不同,调整legend的标签内容对应即可
- blabel参数控制堆叠块内部显示具体占比数值,不需要可直接删除该行配置
- 条形颜色、标题、坐标轴刻度均可根据需求自行调整参数
内容的提问来源于stack exchange,提问作者jake miller
相关产品推荐
相关产品推荐

