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

如何在Stata 14中绘制含两个分类变量的目标条形图

问题描述

我在Stata 14中生成了不符合预期的条形图,该图基于给定的数据列构建。我先用以下两条命令生成了绘图所需的最后两个变量:

// Command 1
gen mayores_65=0 if Edad>=65 & ID !=.
replace mayores_65=1 if Edad<65
label values mayores_65 dSíNo
label define dSíNo 0 "No" 1 "Sí"
label values mayores_65 dSíNo

// Command 2
gen Estatus=0 if Nivel_social==0
replace Estatus=1 if Nivel_social==1
replace Estatus=2 if Nivel_social==2 | Nivel_social==3 | Nivel_social==4 | Nivel_social==5

随后用这条命令生成了错误图形:

graph bar (percent), over(Estatus) over(mayores_65)

请问能否生成我预期的条形图(按年龄组分组,每组内并列展示不同社会阶层占比的样式)?


解决方案

1. 修正变量生成命令的错误

你生成mayores_65时的标签定义顺序有误,Stata要求先定义标签再赋值给变量,否则会提示标签不存在。修正后的命令:

// 修正后的年龄分组变量生成
label define dSíNo 0 "No" 1 "Sí"
gen mayores_65=0 if Edad>=65 & ID !=.
replace mayores_65=1 if Edad<65
label values mayores_65 dSíNo

// 社会阶层分组变量生成(原命令可保留,建议补充标签让图形更清晰)
gen Estatus=0 if Nivel_social==0
replace Estatus=1 if Nivel_social==1
replace Estatus=2 if Nivel_social==2 | Nivel_social==3 | Nivel_social==4 | Nivel_social==5
label define Estatus_lab 0 "类别0" 1 "类别1" 2 "类别2-5"
label values Estatus Estatus_lab

2. 生成预期的条形图

根据你描述的预期样式,调整graph bar的参数顺序和选项即可实现:

graph bar (percent), over(mayores_65) over(Estatus) asyvars ///
    legend(pos(6) ring(0) label(1 "类别0") label(2 "类别1") label(3 "类别2-5")) ///
    bar(1, color(#1f77b4)) bar(2, color(#ff7f0e)) bar(3, color(#2ca02c)) ///
    ytitle("占比(%)") xtitle("年龄≥65岁?") ///
    title("不同年龄组的社会阶层分布") ///
    yscale(range(0 100))
  • over(mayores_65) over(Estatus):调整分组顺序,让年龄组作为x轴主分组
  • asyvars:将社会阶层类别拆分为并列条形,而非堆叠
  • 补充颜色、标签、标题等参数,让图形更贴合预期样式

如果需要展示每个年龄组内各社会阶层的占比总和为100%,可以用by()选项生成子图:

graph bar (percent) over(Estatus), by(mayores_65) ///
    legend(pos(6) ring(0)) ///
    bar(1, color(#1f77b4)) bar(2, color(#ff7f0e)) bar(3, color(#2ca02c)) ///
    ytitle("占比(%)") ///
    title("不同年龄组的社会阶层分布") ///
    yscale(range(0 100))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:10:13