Как указать разные 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))

График выглядит так:

Возможные диагнозы:

  1. range () никогда не сужает масштаб оси и не опускает данные на график, поэтому coefplot может не слушать вас, если диапазоны не соответствуют тому, что строится. Невозможно сказать, не видя выхода модели.
  2. У вас нет самой последней версии coefplotи это было то, что было исправлено. С пользовательскими командами это всегда стоит проверять, когда вы сталкиваетесь с проблемой.
Другие вопросы по тегам