【发布时间】:2019-05-06 05:19:11
【问题描述】:
我想比较 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")
相反,我希望将它们叠加起来,因为这些数据都是在一年中的可比时间收集的。到目前为止,我还没有找到解决方案。
谢谢!
【问题讨论】:
-
IIRC,你想要一个 2012 年的 ts,一个 2013 年的,一个 2014 年的吗?
-
是的,但都叠加在一张图中,如下所示:i.stack.imgur.com/4LqYa.png
-
当您使用
"Date" = ymd_hm(paste(yr, mt, dy, hr, sep = " ")时,您在 x 轴上指定年份,这使得年度系列显示在彼此相邻的时间线上。我建议您对所有系列使用一年,例如"Date" = ymd_hm(paste(2014, mt, dy, hr, sep = " ")并将年份映射到颜色。 -
啊哈!谢谢!行得通!
标签: r ggplot2 time-series lubridate