如何使用stata在coefplot中指定不同的xscale?

如何使用stata在coefplot中指定不同的xscale?,stata,coefplot,Stata,Coefplot,我正在使用stata中的coefplot绘制系数。我将两个图形组合在一起,并希望使用不同的xscale。该网页建议使用此选项: byopts(xrescale) 但是,此选项不允许用户指定的xscale。例如,我想用xscale(-0.1,0.5)指定一个子图,用xscale(-0.1,0.1)指定另一个子图。以下代码无法实现我的目标 coefplot (est1,label(Grade 5)) (est2,label(Grade 6)) /// ,

我正在使用stata中的coefplot绘制系数。我将两个图形组合在一起,并希望使用不同的xscale。该网页建议使用此选项:

  byopts(xrescale)
但是,此选项不允许用户指定的xscale。例如,我想用xscale(-0.1,0.5)指定一个子图,用xscale(-0.1,0.1)指定另一个子图。以下代码无法实现我的目标

    coefplot (est1,label(Grade 5)) (est2,label(Grade 6))  ///
              , bylabel("Chinese") xscale(r(-0.1,0.5))  ||    /// 
             (est3,label(Grade 5)) (est4,label(Grade 6)) ///
             ,bylabel("Math")     xscale(r(-0.1,0.1))    ||, /// 
              keep(1.female)  ///
              yscale(off)  graphregion(fcolor(white)) xscale(r(0,1) 
              titleg(0.1)) ///
              xline(0, lwidth(vthin) lcolor(red)) ciopts(recast(rcap)) 
              byopts(xrescale)

很难知道出了什么问题,因为我们没有您的数据、完整或有效的代码,甚至没有无法实现您目标的实际图形

以下是显示每个子批次中自定义x轴范围的可复制示例:

sysuse auto, clear
eststo m1: reg price c.mpg
eststo m2: reg price c.weight
eststo m3: reg price i.foreign
coefplot (m1, xscale(range(-350 -50))) || (m2, xscale(range(1 3))) || (m3, xscale(range(-1200 2000))) ///
, drop(_cons) byopts(xrescale cols(3))
图表如下所示:

可能的诊断:

  • range()永远不会缩小轴的比例或导致数据从绘图中忽略,因此如果范围与绘图内容不一致,则
    coefplot
    可能听不到您的声音。如果看不到模型输出,就无法判断
  • 您没有最新版本的
    coefplot
    ,这是已修复的。对于用户编写的命令,当您遇到问题时,这总是值得检查的