将直方图合并到一张图中

时间:2018-09-06 08:43:28

标签: histogram stata

根据histogram命令的帮助文件,示例代码:

sysuse auto 
histogram mpg, discrete by(foreign)

将产生两个这样的图,一个紧挨着另一个。

我能以某种方式将两个直方图放在同一张图中吗?

我使用Stata 14。

1 个答案:

答案 0 :(得分:2)

是的,您可以使用更灵活的graph twoway命令来实现:

sysuse auto, clear
twoway (histogram mpg if !foreign) (histogram mpg if foreign), ///
       legend(order(1 "Domestic" 2 "Foreign"))

但是,由于两个直方图重叠,因此结果不是很有用:

enter image description here

与版本15不同,Stata 14不支持透明度。因此,必须通过调整选项来模拟类似的效果。或者,找到一种方法来分离直方图条。

解决方案1:模拟透明度

twoway (histogram mpg if !foreign, width(3) color(ebblue)) ///
       (histogram mpg if foreign, width(3) fcolor(none) lcolor(black) lwidth(thin)), ///
       legend(order(1 "Domestic" 2 "Foreign"))

enter image description here

解决方案2:使用条形图模拟直方图

twoway__histogram_gen mpg if !foreign, generate(h0 x0)
twoway__histogram_gen mpg if foreign, generate(h1 x1)

twoway (bar h0 x0, barw(1) color(ebblue)) (bar h1 x1, barw(1) color(red)), ///
       legend(order(1 "Domestic" 2 "Foreign"))

enter image description here

对于此解决方案,我首先手动创建条,然后绘制它们。有关更多信息,请从Stata的命令提示符下键入help twoway__histogram_gen