Используя ваши данные:
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()
Я оставлю это вам, чтобы привести в порядок метки осей, заголовок легенды и т. Д.
НТН
colour=
качестве имени переменной.