2012-04-03 11 views
6

Korzystanie następującą symulację czasowy:Faceted szeregów czasowych ze średnią profilu w ggplot2

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

(pierwsze 7 kolumny reprezentują punkt czasowy, ostatnia kolumna klasy)

Czy możliwe jest skonstruowanie obliczach szeregi czasowe zawierające średnią krzywą na każdym wykresie, używając ggplot2?

Wyniki powinny wyglądać mniej więcej tak: plot with mean curves

Odpowiedz

12

To nie może być najpiękniejsza kod, ale uważam, że dostaje to, czego szukasz,

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 ~ .) 

Nie wahaj ulepszyć mój kod.

spaghetti plot with stat_smooth and facet_grid

+0

Dziękuję bardzo! – user680111

+2

Moja przyjemność, wiem jak to jest, kiedy utkniesz. Powinieneś spróbować zmienić 'se = FALSE' na' se = TRUE', często uważam, że informacje są dość pouczające. –

+0

@Eric Zastanawiam się, czy możesz podać kilka szczegółów na temat tego, jak długo został utworzony longDF. Wyobrażam sobie, że 'melt' z' reshape' został użyty ... –

Powiązane problemy