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

如何在Stata中创建以0为中心的堆叠条形图

解决方案:Stata制作以0为中心的堆叠条形图

问题背景

刚接触Stata,当前用graph bar生成的是1-100刻度的堆叠条形图,希望改成以0为中心、刻度范围-100到100的样式,让正向分类(绿色)在0右侧,负向分类(红色)在0左侧。

实现步骤

Stata原生的graph bar默认会将所有变量按正值堆叠,要实现中心0的效果,核心是把负向变量转为负值,再进行堆叠:

  1. 转换负向变量为负值
    先将代表负面态度的变量转为负数,这样堆叠时它们会向0的左侧/下方延伸:
gen neg_slightly_negative = -slightly_negative
gen neg_strongly_negative = -strongly_negative
  1. 绘制中心0的堆叠条形图
    用转换后的变量重新绘图,设置y轴范围、刻度并添加中心参考线:
graph bar strongly_positive slightly_positive neg_slightly_negative neg_strongly_negative, over(asset_class_name) stack ///
    bar(1, fcolor(green) fintensity(inten80)) bar(2, fcolor(green) fintensity(inten50)) ///
    bar(3, fcolor(red) fintensity(inten50)) bar(4, fcolor(red) fintensity(inten80)) ///
    yscale(range(-100 100)) ylabel(-100 "-100" -50 "-50" 0 "0" 50 "50" 100 "100") ///
    yline(0, lcolor(black)) name(centered_bar)

说明

  • 转换负变量后,Stata会自动将负值堆叠在0的下方(垂直条形图),绿色的正向分类在0上方,红色的负向分类在0下方,形成中心对称的效果
  • yscale(range(-100 100))强制y轴范围覆盖-100到100,ylabel自定义刻度标签
  • yline(0)添加黑色的中心参考线,更清晰区分正负区域

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:55:19