Stata Coefplot Spacing

时间:2017-08-20 10:09:48

标签: stata coefplot

我正在使用SSC的Stata coefplot包。我想在同一个图上绘制大量的估计系数。因此,我想减少系数之间的间距。

例如:

quietly sysuse auto, clear
quietly regress price mpg trunk length turn
coefplot, drop(_cons) xline(0)

如何减少“里程(英里)”和“行李箱空间(铜英尺)”之间的间距?

图表:

enter image description here

1 个答案:

答案 0 :(得分:2)

由于Stata的图形系统的工作原理,图形周围的一些空白是不可避免的限制。话虽如此,解决此问题的另一种方法(不会改变图形的纵横比)是增加y-axis的范围。

例如:

forvalues i = 1 / 4 {
    coefplot, drop(_cons) xline(0) yscale(range(-`i' `=6+`i''))                                                 
}

enter image description here

一种不同但相关的方法是完全关闭y标签,并改用标记标签:

forvalues i = 1 / 4 {
    coefplot, drop(_cons) ///
              xline(0) ///
              yscale(range(-`i' `=6+`i''))  ///
              yscale(off) ///
              mlabels(mpg = 12 "Mileage" ///
                      trunk = 12 "Trunk space (cu. ft.)" ///
                      length = 12 "Length (in.)" ///
                      turn = 12 "Turn Circle (ft.)")
}

enter image description here

在两种方法中,都可以通过调整range()子选项中指定的值来设置开始和结束位置(即标签上方和下方的空间量)。

请注意,可以使用选项grid(none)关闭网格线。

此外,通过结合使用at(matrix())选项和yscale(range()),可以减少系数距离的不相等减小:

matrix A = (0.2,0.21,0.22,0.225,0.255)

coefplot, drop(_cons) ///
          xline(0) ///
          yscale(range(0.18 0.26)) ///
          yscale(off) ///
          mlabels(mpg = 12 "Mileage" ///
                  trunk = 12 "Trunk space (cu. ft.)" ///
                  length = 12 "Length (in.)" ///
                  turn = 12 "Turn Circle (ft.)") ///
          at(matrix(A)) ///
          horizontal

enter image description here