Graph 如何在组合Stata条形图中对齐x轴?

Graph 如何在组合Stata条形图中对齐x轴?,graph,stata,Graph,Stata,我正在尝试将多个条形图堆叠在一起。我使用两个常量变量强制Stata以彩色打印第一个选项,并使用图例。不幸的是,如果使用图形组合,Stata不会自动对齐不同图形的x轴。是否有正确的方法左对齐x轴? 我发现了一个漏洞,在“con2”的标签上添加了空格,但这并不十分准确,而且在很大程度上取决于使用的字体 以下是一个工作示例: sysuse nlsw88, clear graph drop _all recode married south (1=100) collapse married south,

我正在尝试将多个条形图堆叠在一起。我使用两个常量变量强制Stata以彩色打印第一个
选项,并使用图例。不幸的是,如果使用
图形组合
,Stata不会自动对齐不同图形的x轴。是否有正确的方法左对齐x轴? 我发现了一个漏洞,在“con2”的标签上添加了空格,但这并不十分准确,而且在很大程度上取决于使用的字体

以下是一个工作示例:

sysuse nlsw88, clear
graph drop _all
recode married south (1=100)
collapse married south, by(race)
list
gen con1 = 1
gen con2 = 1
graph bar married, horiz over(race) ///
    over(con1, lab(nolab)) over(con2, relabel(1 "Married")) ///
    legend(off) yscale(range(0 100)) ///
    name(plot1) fysize(42)
graph bar south, horiz over(race) ///
    over(con1, lab(nolab)) over(con2, relabel(1 "Lives in South")) ///
    yscale(range(0 100)) ///
    name(plot2)

graph combine plot1 plot2, cols(1) xcom ycom imargin(0 0 0 0)

您正在绘制单独的图形,
graph combine
在使它们对齐方面只能做到这一点。答案是将单独的图形绘制为同一图形的单独面板,通过重新构造数据很容易

sysuse nlsw88, clear
recode married south (1=100)
collapse married south, by(race)
list
rename (married south) (what=)
reshape long what , i(race) string j(response)
replace response = "lives in South" if response == "south"
graph hbar what, over(race) over(response) asyvars

该设备适用于多个面板,而不仅仅是两个。您可能需要在轴标签上做一些工作,如下所示

非常感谢您的快速响应!这项技术为我节省了很多时间(和代码行)。在其他上下文中显示了相同的基本思想。另请参见,如果我还想在同一个图形中绘制平均年龄(这也是nlsw88中的一个变量),是否有可能添加一个额外的轴?从图形上看,我看不出平均年龄属于以百分比表示的平均值,即具有不同单位的变量。但是,没有什么能阻止你把不同的变量放在同一个尺度上,除了好的品味。代码是一样的,真的。