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

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轴刻度间隔为20
    • legend(off):关闭冗余图例(仅一组数据无需图例)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:55:19