覆盖同一站点不同年份的时间序列线

时间:2018-12-04 17:48:10

标签: r ggplot2 time-series lubridate

我想比较3年中同一地点的水位。因此,我想将这3年绘制在同一张图表上。在春季每天两次收集数据,并使用lubridate将数据点的日期和时间存储为POSIXct日期格式。

例如:

library(lubridate)
yr <- c(rep("2012", 128), rep("2013", 136), rep("2014", 112))
mt <- c(c(rep("5", 62), rep("6", 60), rep("7", 6)),
        c(rep("5", 58), rep("6", 60), rep("7", 18)),
        c(rep("5", 50), rep("6", 60), rep("7", 2)))
dy <- c(c(rep(1:31, each = 2), rep(1:30, each = 2), rep(1:3, each = 2)),
        c(rep(3:31, each = 2), rep(1:30, each = 2), rep(1:9, each = 2)),
        c(rep(7:31, each = 2), rep(1:30, each = 2), rep(1, each = 2)))
hr <- c(rep(c("2:00", "14:00"), 64),
        rep(c("2:00", "14:00"), 68),
        rep(c("2:00", "14:00"), 56))
water.levels <- data.frame("Date" = ymd_hm(paste(yr, mt, dy, hr, sep = " ")),
                       "Levels" = runif(376, min = 0.8, max = 1.5))

当我绘图时,我在同一张图上得到了三年,但是作为一个连续的时间序列:

plot(water.levels, type = "l")

相反,我希望将它们叠加起来,因为所有数据都是在一年中的可比较时间收集的。到目前为止,我还没有找到解决方案。

谢谢!

1 个答案:

答案 0 :(得分:0)

感谢乔恩·斯普林(Jon Spring),这是一个足够简单的解决方案:

{{1}}
相关问题