Stata Coefplot Spacing

Я работаю с coefplot посылка в стате от SSC. У меня есть большое количество оценочных коэффициентов, которые я хотел бы нарисовать на одном графике. Соответственно, я хотел бы уменьшить расстояние между коэффициентами.

Так, например:

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

Как можно уменьшить расстояние между "пробегом (миль на галлон)" и "пространством в багажнике (куб. Футов)"?

График:

0 ответов

Некоторое свободное пространство вокруг графика является неизбежным ограничением из-за того, как работает графическая система Stata. С учетом сказанного, альтернативный способ обойти это (который не влияет на соотношение сторон графика) - увеличить диапазонy-axis.

Например:

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

Другой, но связанный подход - отключить y label полностью и вместо этого используйте метки-маркеры:

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.)")
}

В обоих подходах начальная и конечная позиции (т. Е. Количество пространства над и под метками) могут быть установлены путем настройки значений, указанных в 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

Другие вопросы по тегам