R 在ggplot2中分组时,直方图不正确

R 在ggplot2中分组时,直方图不正确,r,ggplot2,R,Ggplot2,生成一些数据 set.seed(123) dat <- data.frame(x=c(rnorm(1000),rnorm(1000)+3), y=as.factor(c(rep("A",1000),rep("B",1000)))) 正确版本 ggplot(dat,aes(x=x))+ geom_histogram(data=subset(dat,y=='A'),aes(fill=y),alpha=0.5)+ geom_histogram

生成一些数据

set.seed(123)
dat <- data.frame(x=c(rnorm(1000),rnorm(1000)+3),
                  y=as.factor(c(rep("A",1000),rep("B",1000))))
正确版本

ggplot(dat,aes(x=x))+ 
   geom_histogram(data=subset(dat,y=='A'),aes(fill=y),alpha=0.5)+
   geom_histogram(data=subset(dat,y=='B'),aes(fill=y),alpha=0.5)
有人能解释一下原因吗?

您需要指定位置参数:

ggplot(data=dat, aes(x=x,fill=y)) +
  geom_histogram(alpha=0.5, position = 'identity')

ggplot的目的是使两个数据集完全可见。参数alpha允许使用透明度执行此操作。缺乏透明度会显示两个数据集,一个位于第二个之上,这表明形状不正确。

在不正确的版本中,一个直方图有两种颜色,而在正确的版本中,实际有两种颜色。alpha参数在第一个示例中定义,因此这不是观察到的行为的原因。确定,我专注于解释,不正确的柱状图不是不正确的,而是以另一种方式呈现的。啊,是的,这是正确的。当我阅读SO问题时,我会在心里用不想要的替换不正确的,因为这通常是海报的意思。
ggplot(data=dat, aes(x=x,fill=y)) +
  geom_histogram(alpha=0.5, position = 'identity')