我正在使用SSC的Stata coefplot
包。我想在同一个图上绘制大量的估计系数。因此,我想减少系数之间的间距。
例如:
quietly sysuse auto, clear
quietly regress price mpg trunk length turn
coefplot, drop(_cons) xline(0)
如何减少“里程(英里)”和“行李箱空间(铜英尺)”之间的间距?
图表:
答案 0 :(得分:2)
由于Stata的图形系统的工作原理,图形周围的一些空白是不可避免的限制。话虽如此,解决此问题的另一种方法(不会改变图形的纵横比)是增加y-axis
的范围。
例如:
forvalues i = 1 / 4 {
coefplot, drop(_cons) xline(0) yscale(range(-`i' `=6+`i''))
}
一种不同但相关的方法是完全关闭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.)")
}
在两种方法中,都可以通过调整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