2012-04-03 23 views
6

Usando la siguiente serie de tiempo simulado:series de tiempo facetadas con perfil medio en 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)) 

(primeros 7 columnas representan el punto de tiempo, la última columna de la clase)

¿Es posible construir un facetado series de tiempo que incluye la curva promedio en cada gráfica, usando ggplot2?

Los resultados debería ser algo como esto: plot with mean curves

Respuesta

12

Puede que no sea el código más bonito, pero creo que usted consigue lo que busca,

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

Por favor, no dude para mejorar mi código

spaghetti plot with stat_smooth and facet_grid

+0

¡Muchas gracias! – user680111

+2

Es un placer, sé cómo se siente cuando estás atrapado. Debería intentar cambiar 'se = FALSE' por' se = TRUE', a menudo encuentro esa información bastante informativa. –

+0

@Eric Me preguntaba si podría proporcionar algunos detalles sobre cómo se creó longDF. Me imagino que se usó 'derretir' de' remodelar' ... –

Cuestiones relacionadas