在Stata的边缘图中躲避误差线

时间:2016-05-11 16:58:36

标签: graphics stata

我正在使用margininsplot在两个不同的组之间绘制一些错误条。错误条虽然重叠,但我试图将它们略微左右躲闪。

这是一个从marginsplot帮助中略微编辑的示例,用于说明问题。

use http://www.stata-press.com/data/r13/nhanes2
quietly regress bpsystol agegrp##sex
quietly margins agegrp#sex
marginsplot, recast(scatter) ciopts(recast(rspike))

enter image description here

是否有任何简单的方法可以轻轻向左躲避蓝色的男性点数和指示,而红色的女性指向并略微向右倾斜(反之亦然)?就像躲过的条形图一样。

(在这里可以将ci重新设置为某个区域,并使其略微透明,如同在帮助示例中的更深层次,但对于我的实际使用,我想保留点和尖峰。)

1 个答案:

答案 0 :(得分:3)

以下是使用parmesteclplot的方法。诀窍是将组变量的值调整少量,例如, 0.1,然后使用subby的{​​{1}}选项。

eclplot

short version

这种方法的问题是所有标签都丢失了。除了蛮力之外,我不知道找回它们的好方法,并乐于从更好的解决方法中学习。以下是代码的扩展版本,我尝试通过强力方法自动重新应用所有值标签。

** a short version
use http://www.stata-press.com/data/r13/nhanes2
qui reg bpsystol agegrp##sex
qui margins agegrp#sex
qui parmest , bmat(r(b)) vmat(r(V)) level( `cilevel' ) fast
qui split parm, parse( . # )
qui destring parm*, replace
replace parm1 = parm1 - ( 0.05 )
eclplot estimate min95 max95 parm1, eplot(sc) rplottype(rspike) supby(parm3, spaceby(0.1))

Dodged Error Bar Chart Manually

如果可能的话,很乐意从更优雅的解决方案中学习,这些解决方案可以减少重新燃起的喧嚣。