Как указать разные xscale в coefplot, используя stata?
Я использую coefplot в stata для построения коэффициентов. Я объединяю два графика вместе и хотел бы использовать разные 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)
1 ответ
Трудно понять, что происходит, потому что у нас нет ваших данных, полного или действительного кода или даже фактического графика, который не достигает ваших целей.
Вот воспроизводимый пример, показывающий настраиваемые диапазоны оси 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))
График выглядит так:
Возможные диагнозы:
- range () никогда не сужает масштаб оси и не опускает данные на график, поэтому
coefplot
может не слушать вас, если диапазоны не соответствуют тому, что строится. Невозможно сказать, не видя выхода модели. - У вас нет самой последней версии
coefplot
и это было то, что было исправлено. С пользовательскими командами это всегда стоит проверять, когда вы сталкиваетесь с проблемой.