Используя ваши данные:
test_data <- data.frame(
var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
Dates = seq.Date(as.Date("2002-01-01"), by="1 month", length.out=100))
Я создаю составленную версию, с которой ggplot()
хотел бы работать:
stacked <- with(test_data,
data.frame(value = c(var0, var1),
variable = factor(rep(c("Var0","Var1"),
each = NROW(test_data))),
Dates = rep(Dates, 2)))
В этом случае получение stacked
было довольно простым, поскольку нам нужно было всего лишь выполнить пару манипуляций, но reshape()
и reshape
и reshape2
могут быть полезны, если у вас есть более сложные реальные данные, установленные в манипулировать.
Как только данные представлены в этой суммированной форме, требуется всего лишь простой вызов ggplot()
, чтобы создать требуемый график со всеми дополнительными функциями (одна из причин, по которой такие высокоуровневые пакеты построения графиков, как lattice
и ggplot2
полезно):
require(ggplot2)
p <- ggplot(stacked, aes(Dates, value, colour = variable))
p + geom_line()
Я оставлю это вам, чтобы привести в порядок метки осей, заголовок легенды и т. Д.
НТН