Stata非数值X轴柱状图中添加柱间竖线的方法咨询
在Stata柱状图中添加组间竖线的解决方案
当然可行,问题出在graph bar的x轴是离散分类轴,直接用xline()时如果不明确坐标范围或定位点,竖线可能被隐藏或者无法正确显示。下面给你两种实用的解决方法:
方法1:直接在graph bar中调整参数
graph bar里每个分类的x轴坐标是从1开始的连续整数(比如你有7个变量,坐标就是1到7),组之间的分隔位置是两个分类坐标的中间值(比如第3和第4个柱子之间的坐标是3.5)。只要指定这个中间值,并扩展x轴范围确保竖线能显示即可:
graph bar (max) CAAR_Automotive CAAR_Motion_Picture CAAR_Business_Services CAAR_Chemicals CAAR_Communications CAAR_Hotels CAAR_Airline, /// xline(3.5) // 替换成你需要分隔的位置,多条竖线可写为xline(2.5,5.5) xscale(range(0.5 7.5)) // 扩展x轴范围,避免竖线被截断
方法2:换用twoway bar(更灵活的轴控制)
如果需要更复杂的自定义,twoway bar对坐标轴的控制更自由,先把数据转成长格式再绘图:
* 1. 将宽格式数据转成长期格式(无分组ID则先生成一个) gen id = _n reshape long CAAR_, i(id) j(industry_str) string * 2. 绘制柱状图并添加竖线 twoway bar CAAR_ _j, barwidth(0.8) /// xline(3.5) // 指定分隔位置 xlabel(1 "Automotive" 2 "Motion Picture" 3 "Business Services" 4 "Chemicals" 5 "Communications" 6 "Hotels" 7 "Airline") /// title("Max CAAR by Industry")
为什么原来的xline()没生效?
graph bar默认的x轴范围刚好贴合分类的边界(比如1到7),中间的分隔点(如3.5)虽然在范围内,但默认轴刻度设置可能导致竖线被隐藏,添加xscale(range(0.5 7.5))就能解决这个问题。
内容的提问来源于stack exchange,提问作者Shaban Imeri
相关产品推荐
相关产品推荐

