2014-03-18 83 views
0

我試圖繪製時間序列X_T = A +(-1)^ T BGGPLOT2被繪製的線奇怪

爲此,我使用下面的代碼。問題是,ggplot是錯誤的。

require (ggplot2) 
set.seed(42) 
N<-2 
A<-sample(1:20,N) 
B<-rnorm(N) 
X<-c(A+B,A-B) 
dat<-sapply(1:N,function(n) X[rep(c(n,N+n),20)],simplify=FALSE) 
dat<-data.frame(t=rep(1:20,N),w=rep(A,each=20),val=do.call(c,dat)) 

ggplot(data=dat,aes(x=t, y=val, color=factor(w)))+ 
    geom_line()+facet_grid(w~.,scale = "free") 

enter image description here

看着DAT一切的頭向右看:

> head(dat) 
    t w  val 
1 1 12 10.5533 
2 2 12 13.4467 
3 3 12 10.5533 
4 4 12 13.4467 
5 5 12 10.5533 
6 6 12 13.4467 

所以較低(藍色)線應該只值10.5533和13.4467。但它也有不同的價值。我的代碼有什麼問題?

預先感謝任何幫助

+3

我不明白你的例子。此外,你的例子產生的數據重複每個點的t值。 – joran

回答

3

你真的應該是斷言,什麼是「錯誤的」前多加小心。你現在的樣子創造dat行不被dat$t有序,所以head(...)不顯示多餘的值:

head(dat[order(dat$w,dat$t),],10) 
# t w  val 
# 21 1 18 18.43530 
# 61 1 18 18.36313 
# 22 2 18 19.56470 
# 62 2 18 17.63687 
# 23 3 18 18.43530 
# 63 3 18 18.36313 
# 24 4 18 19.56470 
# 64 4 18 17.63687 
# 25 5 18 18.43530 
# 65 5 18 18.36313 

注意行號。