根据histogram
命令的帮助文件,示例代码:
sysuse auto
histogram mpg, discrete by(foreign)
将产生两个这样的图,一个紧挨着另一个。
我能以某种方式将两个直方图放在同一张图中吗?
我使用Stata 14。
答案 0 :(得分:2)
是的,您可以使用更灵活的graph twoway
命令来实现:
sysuse auto, clear
twoway (histogram mpg if !foreign) (histogram mpg if foreign), ///
legend(order(1 "Domestic" 2 "Foreign"))
但是,由于两个直方图重叠,因此结果不是很有用:
与版本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"))
解决方案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"))
对于此解决方案,我首先手动创建条,然后绘制它们。有关更多信息,请从Stata的命令提示符下键入help twoway__histogram_gen
。