2013-06-14 41 views
8

Tôi đang cố gắng vẽ 3 ví dụ về phân bố chuẩn, tuy nhiên ggplot dường như nhận dạng đường dẫn là một đường liên tục chứ không phải một phân tầng theo các mức hệ số. Tôi tương đối mới với ggplot và bất kỳ trợ giúp nào sẽ được đánh giá cao.Vẽ các bản phân phối bình thường

Đây là mã của tôi:

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")) 

Làm thế nào tôi có thể nhận được ggplot để nhận ra những yếu tố cốt truyện và với 3 màu sắc khác nhau? Thay vì hiển thị một đường dẫn liên tục?

+8

Bạn đã được cắn tái chế vector im lặng R! Bạn vô tình làm P 3 lần quá lâu. Sau đó, X và Y được lặp lại một lần cho mỗi cấp độ P. Chỉ cần thực hiện một thay đổi 'l <- length (x)' và mọi thứ hoạt động. – bdemarest

+0

Ah được rồi, cảm ơn bạn rất nhiều, tôi nên thấy điều đó! – Tom

+9

+1 cho ví dụ có thể tái sản xuất trong bài đăng đầu tiên của bạn. Tôi sẽ yêu cầu @bdemarest gửi bài quan sát của anh ấy như một câu trả lời để OP có thể chấp nhận nó là chính xác. –

Trả lời

2

Một ví dụ tái sản xuất, sử dụng gợi ý từ 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) 
Các vấn đề liên quan