如何在ggplot2中绘制小时 - 秒 - 时间序列

时间:2015-04-26 21:14:24

标签: r ggplot2 time-series

使用ggplot2绘制每行有hh:mm:ss时间戳的时间序列数据的正确方法是什么?例如:

48:09:35  0.2
48:09:36  0.3
48:12:05  0.4
48:35:48  0.5

上面的每个时间戳都是以下形式:小时:分钟:秒,如48:09:35

我希望在x轴上绘制此图,并在y轴上绘制与时间戳相关联的值,但是x轴适当地间隔小时 - 秒 - 时间戳。

有没有办法在R?

中的ggplot2中执行此操作

1 个答案:

答案 0 :(得分:2)

由于您的时间超出24小时的每日范围,因此无法使用标准函数(例如chron包中的chron),您可以将Time变量转换为数值。

df$Time_secs <- unlist(lapply(lapply(strsplit(df$Time, ":"), as.numeric), function(x) x[1]*60^2+x[2]*60+x[3]))
ggplot(df, aes(x = Time_secs, y = Value)) + geom_line() + scale_x_continuous(labels = df$Time)

enter image description here

数据:

dput(df)
structure(list(Time = c("48:09:35", "48:09:36", "48:12:05", "48:35:48"
), Value = c(0.2, 0.3, 0.4, 0.5)), .Names = c("Time", "Value"
), class = "data.frame", row.names = c(NA, -4L))