如何制作直方图,其中所有条形加起来为1并在上方添加密度图层?
set.seed(1234)
df <- data.frame(
sex=factor(rep(c("F", "M"), each=200)),
weight=round(c(rnorm(200, mean=55, sd=5),
rnorm(200, mean=65, sd=5)))
)
ggplot(df, aes(x=weight, color=sex, fill=sex)) +
geom_histogram(aes(y=..density..), alpha=0.5,
position="identity")+
geom_density(alpha=.2)
但是当我将aes(y=..density..)
更改为aes(y=..scaled..)
时,我收到错误。
如果我将此示例与我的(大)数据一起使用,密度将达到120。 基本上这个: ![巴] http://www.sthda.com/sthda/RDoc/figure/easy-ggplot2/ggplot2-histogram-multiple-groups3.png 具有不同的y轴。 (以便一种类型的所有条形加起来为1)
我不确定使用geom_smooth在统计上是否合法?
答案 0 :(得分:0)
尝试使用y = ..density../sum(..density..)
:
set.seed(1234)
df <- data.frame(
sex=factor(rep(c("F", "M"), each=200)),
weight=round(c(rnorm(200, mean=55, sd=5),
rnorm(200, mean=65, sd=5)))
)
library(ggplot2)
ggplot(df, aes(x=weight, color=sex, fill=sex)) +
geom_histogram(aes(y=..density../sum(..density..)), alpha=0.5,
position="identity")+
geom_density(alpha=.2)