在 Stata 中,如何将多个 coefplots 与不同的轴组合起来?

In Stata, how can I combine multiple coefplots with different axes?

我正在尝试在 Stata 中组合两个 coefplots - 一个表示二元变量的比例,第二个 - 逻辑回归的优势比。

采用一些示例性数据,我们分别研究吸烟者和非吸烟者的低出生体重,并检查种族和高血压病史的影响(请注意,这些分析并不意味着从概念的角度来看有意义,而是 - 它们用于生成一些用于绘图的数据!):

use http://www.stata-press.com/data/r12/lbw.dta, clear

logit low i.race if smoke == 0
eststo race_0: margins race, post

logit low i.race if smoke == 1
eststo race_1: margins race, post

logit low i.ht if smoke == 0
eststo ht_0: margins ht, post

logit low i.ht if smoke == 1
eststo ht_1: margins ht, post


logit low i.race i.ht if smoke == 0 
eststo mod_0

logit low i.race i.ht if smoke == 1 
eststo mod_1

现在我们可以将这些结果组合成两个图:

coefplot    (race_0 \ ht_0 , label (Non-smoker)) ///
            (race_1 \ ht_1 , label (Smoker)) ///
                , bylabel(Proportion)  ///
            || mod_0 mod_1, ///
                eform baselevels bylabel("Adjusted OR")  /// 
            || , drop(_cons) byopts(xrescale) ///
            groups(*.race = "Race" *.ht = "Hypertension")  

一切正常,我们得到了一个情节:

现在为了让它更漂亮、更易于理解,我想再实现一些东西:

  1. 在右侧面板上使用对数刻度(这是最关键的变化)。
  2. 在每个面板上使用两条不同的 xline 参考线。
  3. 仅在右侧面板添加图例(适用于吸烟者/非吸烟者)。
  4. 使用左侧面板上的 rescale 选项切换到 %s。

我尝试修改各种选项来实现这些更改 - 但到目前为止都无济于事。有什么解决办法吗?

Ben Jann(coefplot 的作者)建议使用他的另一个包 addplot (info, article)。三个附加命令可以添加两条不同的参考线并更改第二个图形的 X 轴的比例:

addplot 1: , xline(0.31) norescaling legend(off)
addplot 2: , xline(1) norescaling legend(off)
addplot 2: , xlab(0.5 1 2 5 20) xscale(log) norescaling legend(off)

唯一的缺点是,尽管使用了 legend(off) 选项,但图例仍然很疯狂。