我有以下数据框
x1<-data.frame(n = rnorm(1000000, mean=0, sd=1), nombre= "x1")
x2<-data.frame(n=rnorm(1500000, mean=3, sd=1), nombre= "x2")
x<-rbind(x1, x2)
ggplot(x, aes(n, fill=nombre))+
geom_histogram(alpha=0.5, binwidth=0.25, position = "identity")+
geom_density()
我想将密度图覆盖到直方图上,但是它看起来像是一条细线,在0中
您需要获取geom_histogram
并geom_density
共享相同的轴。在这种情况下,我通过将aes(y=..density)
项添加到来指定两者都针对密度进行绘制geom_histogram
。另请注意一些不同的美学效果,以避免过度绘制,以便我们可以更清楚地看到两个几何图形:
ggplot(x, aes(n, fill=nombre))+
geom_histogram(aes(y=..density..), color='gray50',
alpha=0.2, binwidth=0.25, position = "identity")+
geom_density(alpha=0.2)
正如最初指定的那样,美观性同时fill=
适用于两者,因此您可以使用直方图和密度几何图来显示根据“ x1”和“ x2”分组的分布。如果要为x1和x2的组合集使用密度几何,则只需fill=
为直方图几何指定美学:
ggplot(x, aes(n))+
geom_histogram(aes(y=..density.., fill=nombre),
color='gray50', alpha=0.2,
binwidth=0.25, position = "identity")+
geom_density(alpha=0.2)
但是我想要整个分布的密度,而不是分组
使用
geom_density(alpha=0)
以获得更好的视图。@AdriánVallsCarbó-看到答案中的调整。您应该
fill=
在特定几何图形中指定外观。在示例中,我将其移动,以便直方图几何显示x1和x2的分布,而密度几何显示x的整个分布。