3

我在 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)
4

1 回答 1

3

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

这是一个可重现的示例,显示每个子图中的自定义 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))

该图如下所示:

在此处输入图像描述

可能的诊断:

  1. range() 永远不会缩小轴的比例或导致数据从图中省略,因此coefplot如果范围与正在绘制的内容不一致,则可能不会听取您的意见。没有看到模型输出就无法判断。
  2. 您没有最新版本的coefplot,这是已修复的问题。使用用户编写的命令,当您遇到问题时,这总是值得检查的。
于 2018-03-16T19:31:15.317 回答