Как добавить разные нормальные кривые над граненой гистограммой плотности? - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь визуализировать, насколько близки мои данные к нормальному, но у меня возникают проблемы при одновременном использовании 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))

Это возвращает график , что не совсем то, что я ищу.Я хочу, чтобы только кривая, относящаяся к каждой группе, отображалась в каждом фасете.(Я также хотел бы избавиться от этих серых ярлыков, пока мы на нем.)

Есть идеи?Я также попробовал одну функцию stat_function с mean = c (0,3) и sd = c (1,2), но она возвращает многовариантный Normal, что, безусловно, не то, что я хочу.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...