2012-04-03 72 views
6

使用下面的模擬時間序列:刻面的時間序列

n=70 
m1 = matrix(rnorm(n), ncol=7) 
m2 = matrix(rnorm(n, 0,4), ncol=7) 
d = data.frame(rbind(m1,m2), cl=rep(c(1,2), each=5)) 

(第7列代表時間點,最後一列類)

是否有可能建立一個方位時間序列,包括每個圖中的平均曲線,使用ggplot2?

結果應該是這個樣子:plot with mean curves

回答

12

它可能不是最漂亮的代碼,但我相信它可以讓你你在找什麼,

n=70 
m1 = matrix(rnorm(n), ncol=7) 
m2 = matrix(rnorm(n, 0,4), ncol=7) 
d = data.frame(rbind(m1,m2), cl=rep(c(1,2), each=5)) 

d <- cbind(paste("d", 1:NROW(d), sep = ""), d) 
names(d)[1] <- "id.var" 

library(reshape) 
longDF <- melt(d, id=c("cl", "id.var")) 
library(ggplot2) 

p <- ggplot(data = longDF, aes(x = variable, y = value, group = id.var)) 
p + geom_line() + stat_smooth(aes(group = 1), method = "lm", 
se = FALSE, colour="red") + facet_grid(cl ~ .) 

請不要猶豫改善我的代碼。

spaghetti plot with stat_smooth and facet_grid

+0

非常感謝! – user680111 2012-04-03 20:03:02

+2

我的榮幸,我知道你被困時的感覺。您應該嘗試將'se = FALSE'更改爲'se = TRUE',我經常會發現信息非常豐富。 – 2012-04-03 20:13:33

+0

@Eric我想知道你是否可以提供一些關於如何創建DWD的細節。我會想象從'reshape'使用'melt'被使用... – 2013-09-10 16:01:25