2012-04-03 63 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