繁体   English   中英

用不同的变量重叠ggplot2直方图

[英]Overlapping ggplot2 histograms with different variables

如果我有 2 个不同的变量要绘制为直方图,我该怎么做? 举个例子:

data1 <- rnorm(100)
data2 <- rnorm(130)

如果我想要在同一个图中 data1 和 data2 的直方图,有没有办法做到这一点?

您可以通过添加另一个geom_histogram图层将它们放在同一个图中:

## Bad plot
ggplot() + 
  geom_histogram(aes(x=data1),fill=2) + 
  geom_histogram(aes(x=data2)) 

但是,更好的主意是使用密度图:

d = data.frame(x = c(data1, data2), 
               type=rep(c("A", "B"), c(length(data1), length(data2))))
ggplot(d) + 
  geom_density(aes(x=x, colour=type))

或方面:

##My preference
ggplot(d) + 
  geom_histogram(aes(x=x)) + 
  facet_wrap(~type)

或使用条形图(感谢@rawr)

ggplot(d, aes(x, fill = type)) + 
  geom_bar(position = 'identity', alpha = .5)

对@csgillespie 的回答略有变化和补充:

ggplot(d) + 
  geom_density(aes(x=x, colour=type, fill=type), alpha=0.5)

这使:在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM