Stata中如何绘制仅展示readsk=1类别的百分比哑变量图?
Stata绘图:仅展示readsk=1的性别占比条形图
数据集
| Gender | Age | readsk |
|---|---|---|
| Male | 14 | 1 |
| Male | 7 | 0 |
| Female | 7 | 1 |
| Female | 9 | 1 |
需求说明
需要绘制不同性别中具备阅读技能(即readsk=1)人群的占比,该占比可通过命令 tab readsk gender [aw=fsweight], col 获取(当前数据中女性占比100%,男性占比50%)。使用 tabplot readsk gender [aw=fsweight] , percent(gender) showval 绘图时,希望只保留readsk=1对应的条形图,隐藏readsk=0的部分。
解决方法
方法1:筛选数据后绘图
先保留readsk=1的观测再绘图,如果后续还要使用完整数据集,建议搭配preserve/restore避免数据丢失:
preserve keep if readsk == 1 tabplot readsk gender [aw=fsweight], percent(gender) showval restore
方法2:使用tabplot的exclude()选项
如果你的tabplot版本支持该选项,可以直接排除readsk=0的类别:
tabplot readsk gender [aw=fsweight], percent(gender) showval exclude(0)
方法3:改用graph bar直接绘制占比
用graph bar可以更精准地控制展示内容,直接绘制目标占比:
graph bar (percent) if readsk == 1, over(gender) asyvars showval
或者结合proportion命令生成占比后绘图:
proportion readsk, over(gender) [aw=fsweight] graph bar, over(gender) showval
内容的提问来源于stack exchange,提问作者Shubhi
相关产品推荐
相关产品推荐

