2013-06-14 5 views
8

정규 분포의 3 가지 예제를 플롯하려하지만 ggplot은 팩터 레벨에 의해 층화 된 것보다는 하나의 연속적인 것으로 인식합니다. 나는 상대적으로 ggplot에 새로운 것이고 어떤 도움도 크게 감사 할 것입니다.정규 분포 플롯

set.seed(5872) 

x<-seq(-7.5,7.5,0.1) 
l<-length(x)*3 
df<-data.frame(P=factor(rep(c("Mean: -1, SD: 0.5","Mean: 0, SD: 1","Mean: 1, SD: 1.5"),  each=l)), 
X=(c(x,x,x)), 
Y=(c(dnorm(x,-1,0.5),dnorm(x,0,1),dnorm(x,1,1.5)))) 

Normal<-ggplot(data=df,aes(X,Y,group=P,color=P))+ 
geom_path()+ 
scale_x_continuous("")+ 
scale_y_continuous("f(x)")+ 
scale_color_discrete("Parameters")+ 
ggtitle("Normal") + 
theme(plot.title = element_text(size=25,lineheight=.8, face="bold")) 

가 어떻게 ggplot은 3 개 가지 색상으로 요인과 음모를 인식 얻을 수 있습니다 : 여기

내 코드? 하나의 연속 경로를 표시하는 대신?

+8

당신은 R의 침묵 벡터 재활용에 물린있다! 실수로 P를 3 번 ​​이상 길게 만들었습니다. 그런 다음, X와 Y는 P의 각 레벨마다 한 번 반복됩니다. 단지 한 번만'l <- length (x)'로 바꾸면 모든 것이 작동합니다. – bdemarest

+0

아, 고맙습니다. 정말 봤어야합니다! – Tom

+9

첫 번째 게시물에 재현 가능한 예를 들어 +1하십시오. OP가 올바른 것으로 받아 들일 수 있도록 @bdemarest에게 답변으로 그의 관찰을 게시하도록 요청할 것입니다. –

답변

2

재현 예를 들어, bdemarest에서 힌트를 사용하여 :

library(ggplot2) 

    set.seed(5872) 

    x<-seq(-7.5,7.5,0.1) 
    l<-length(x) 
    df<-data.frame(P=factor(rep(c("Mean: -1, SD: 0.5","Mean: 0, SD: 1","Mean: 1, SD: 1.5"), 
      each=l)), 
    X=(c(x,x,x)), 
    Y=(c(dnorm(x,-1,0.5),dnorm(x,0,1),dnorm(x,1,1.5)))) 

    Normal<-ggplot(data=df,aes(X,Y,group=P,color=P))+ 
    geom_path()+ 
    scale_x_continuous("")+ 
    scale_y_continuous("f(x)")+ 
    scale_color_discrete("Parameters")+ 
    ggtitle("Normal") + 
    theme(plot.title = element_text(size=25,lineheight=.8, face="bold")) 

    print(Normal)