根据每半小时的读数绘制时间序列图

Plot time series graph based on readings taken every half hour

我正在尝试根据如下所示的数据绘制时间序列图。数据包含一整天每 30 分钟记录的值。例如,数据框记录了大约 3 小时的数据如下所示:

列名是以半小时显示的时间值

00:00, 00:30, 01:00, 01:30, 02:00, 02:30, 03:00, 03:30, 04:00, 04:30, 05:00

它们各自的数据值是这样的

0.2, 0.4, 0.3, 0.6, 0.7, 0.6, 0.8, 0.10, 0.2, 0.5, 0.7

对于给定的各个时间列,数据框具有多行数据值。我需要在给定时间根据这些值绘制时间序列图。我能够绘制时间序列,但在描述 x 轴(时间值)时遇到问题

假设a是从数据框的一行中取出的向量,那么:

a<-c(0.2, 0.4, 0.3, 0.6, 0.7, 0.6, 0.8, 0.10, 0.2, 0.5, 0.7)
a.ts <- ts(a, start=0, frequency=24) 
plot(a.ts) 

我得到如下时间序列图,但我需要在 x- axis 而不是 start = 0 等等。

我从文档中了解到 ts() 只允许指定年份和月份的起始值。现在我需要在我的图表中持续到 05:00.

的小时起始值 (00:00)

你会想拥有自己的角色时光:

time   <- c("00:00", "00:30", "01:00", "01:30", "02:00", "02:30", "03:00", "03:30", 
"04:00", "04:30", "05:00")

value <- c(0.2, 0.4, 0.3, 0.6, 0.7, 0.6, 0.8, 0.10, 0.2, 0.5, 0.7)

...然后使用strptime()命令将它们转换为class "POSIXlt"(时间和日期)的对象:

hour.time <- strptime(time, "%H:%M")

最后,绘制结果。

plot(hour.time, value, type="l")