如何在多面密度直方图中添加不同的法线?

时间:2019-01-30 17:10:26

标签: r ggplot2 histogram density-plot

我试图可视化我的数据与Normal的接近程度,但是在同时使用stat_function和facet_grid时遇到了麻烦。

我的第一种方法是在这里

example<-mat.or.vec(50,2)
example[1:25,1]<-"Group 1"
example[26:50,1]<-"Group 2"
example[1:25,2]<-rnorm(25,0,1)
example[26:50,2]<-rnorm(25,3,2)
example<-as.data.frame(example)
colnames(example)<-c("group","score")
example$score<-as.numeric(as.character(example$score))

ggplot(example,aes(x=as.numeric(score),color=group,fill=group))+
  geom_histogram(binwidth = 0.5,alpha=0.5,aes(y=..density..))+
  stat_function(fun = dnorm, args = list(mean = 0, sd = 1))+
  stat_function(fun = dnorm, args = list(mean =3, sd =2))+
  guides(fill=guide_legend(title="Group"),color=FALSE)+
  facet_grid(group~.)+scale_fill_manual(labels=c("Treatment","Control"),values=c("blue","pink"))+
  scale_color_manual(values=c("blue","pink"))+
  xlab("Score")+
  ylab("Density")+
  scale_x_continuous(limits=c(-3,7))+
  theme(legend.background = element_blank(),
        legend.box.background = element_rect(size=0.5,color="black"),
        legend.key = element_blank(),
        legend.text=element_text(face="bold",color="black",size=15),
        legend.title = element_blank(),
        legend.key.width = unit(3,"line"),
        text = element_text(size = 15),
        axis.text.x = element_text(face = "bold", color = "black", size = 15),
        axis.text.y = element_text(face = "bold", color = "black", size = 15),
        axis.title = element_text(face="bold",color="black",size="15"),
        panel.background=element_blank(),panel.border = element_rect(colour = "black", fill=NA, size=1))

返回graph 这不是我想要的。我只希望与每个组有关的曲线显示在每个方面。 (我也很想摆脱那些灰色标签,而我们仍在使用它。)

有什么想法吗?我还尝试了一个均值= c(0,3)和sd = c(1,2)的stat_function,但是返回的是多元法线,这绝对不是我想要的。

谢谢!

0 个答案:

没有答案