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