Stata多变量柱状图绘制:展示变量取值为1的百分比
Stata绘制二元变量百分比柱状图方案
数据集导入
直接复制以下代码即可将你的数据集导入Stata:
clear input Water Ice Fire Vapor 1 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1 end
数据预处理(转长格式并计算百分比)
将宽格式数据转为长格式,同时计算每个变量取值为1的百分比:
* 转换为长格式,便于按变量分组统计 reshape long , i(_n) j(varname) string * 按变量分组计算"是"(=1)的占比并转为百分比 bysort varname: gen pct = (sum(varname==1)/_N)*100 * 保留每个变量的唯一百分比值 bysort varname: keep if _n==_N
绘制百分比柱状图
用graph bar命令生成符合需求的柱状图,附带美化设置:
graph bar pct, over(varname) /// title("各变量取值为1的百分比") /// ytitle("百分比(%)") /// xtitle("变量名称") /// bar(1, color(navy)) /// ylabel(0(20)100) /// legend(off) /// note("1代表'是',0代表'否'")
代码说明
reshape long:把多列的宽格式数据转为单变量列的长格式,适配跨变量的统计与绘图需求bysort varname: gen pct = ...:按变量分组,计算每组中1的占比并转换为百分比格式graph bar参数:over(varname):指定X轴为变量名称ytitle/xtitle:自定义坐标轴标题bar(1, color(navy)):设置柱子填充颜色ylabel(0(20)100):设置Y轴刻度间隔为20legend(off):关闭冗余图例(仅一组数据无需图例)
内容的提问来源于stack exchange,提问作者Albert Lutakome
相关产品推荐
相关产品推荐

