我正在尝试根据如下所示的数据绘制时间序列图。数据包含一整天每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轴上有相应的小时值(即00:00,00:00等),而不是start = 0等等。
我从文档中读到,ts()
只允许指定年份和月份的起始值。现在我需要一个小时的起始值(00:00),我的图表一直持续到05:00。
我坚持如何实现这一目标。如果有人能提供帮助,我会很高兴的!
答案 0 :(得分:2)
你想把你的时间作为一个角色:
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()
命令将它们转换为类的对象&#34; POSIXlt&#34; (时间和日期):
hour.time <- strptime(time, "%H:%M")
最后,绘制结果。
plot(hour.time, value, type="l")