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

3

如何使用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个回答

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)

在此输入图片描述

数据:

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))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接