Stata合并x轴范围相同、y值长度不同的图表的对齐问题求解
Stata上下堆叠图表x轴等长的两种实现方案
核心通过控制单图绘图边距、y轴元素间距,配合graph combine的共用轴参数实现需求,两种方案均默认保证两张图x轴范围、长度完全一致。
需求(a):x轴等长、y轴刻度与标签间距统一,顶部图左侧自然留白
该方案下两张图的y轴刻度数值和y轴标签的间距固定,不会因为y轴数值位数变化而改变,顶部图因y轴数值位数更短,左侧会自动留出多余空白。
实现代码如下:
use http://www.stata-press.com/data/r13/wpi1.dta, clear g wpi10 = wpi * 100 * 两张图统一设置y轴刻度与标签间距、左侧绘图边距基准 twoway scatter wpi t, ylabel(, angle(0) labgap(2)) plotregion(margin(l=15)) graph save 1, replace twoway scatter wpi10 t, ylabel(, angle(0) labgap(2)) plotregion(margin(l=15)) graph save 2, replace * 合并时开启x轴共用,强制x轴范围、刻度完全一致 graph combine 1.gph 2.gph, cols(1) xcommon
参数说明:
labgap(2):固定y轴刻度数值和标签的间距,单位为Stata默认的图形间距单位plotregion(margin(l=15)):固定绘图区域左侧预留边距,保证两张图的x轴绘图区域宽度一致xcommon:强制合并的所有子图共用x轴的范围、刻度,避免x轴出现偏差
需求(b):x轴等长、上下两张图的y轴标签完全对齐
该方案下需要提前匹配下方图y轴数值需要的左侧宽度,给顶部图预留足够的y轴刻度左侧空白,保证上下两张图的y轴标签在同一竖直线上,下方图的y轴数值可正常向外拓展不会挤压x轴。
实现代码如下:
use http://www.stata-press.com/data/r13/wpi1.dta, clear g wpi10 = wpi * 100 * 顶部图预留足够左侧空白,匹配下方图y轴数值的宽度需求 twoway scatter wpi t, ylabel(, angle(0) labgap(2)) plotregion(margin(l=22)) graph save 1, replace * 下方图使用相同的左侧边距设置 twoway scatter wpi10 t, ylabel(, angle(0) labgap(2)) plotregion(margin(l=22)) graph save 2, replace * 合并时开启x轴共用,可通过ysize调整整体图形高度适配 graph combine 1.gph 2.gph, cols(1) xcommon ysize(8)
参数说明:
plotregion(margin(l=22))的数值可根据下方图y轴数值的位数灵活调整,位数越多对应数值越大,直到上下y轴标签完全对齐即可
内容的提问来源于stack exchange,提问作者rpickmans
相关产品推荐
相关产品推荐

