Граненый временной ряд со средним профилем в ggplot2 - PullRequest
6 голосов
/ 03 апреля 2012

Использование следующих смоделированных временных рядов:

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

1 Ответ

12 голосов
/ 03 апреля 2012

Возможно, это не самый красивый код, но я верю, что он даст вам то, что вы ищете,

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...