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

时间:2015-07-23 20:49:58

标签: r plot time-series

我正在尝试根据如下所示的数据绘制时间序列图。数据包含一整天每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等等。

Time series plot for the given sample data

我从文档中读到,ts()只允许指定年份和月份的起始值。现在我需要一个小时的起始值(00:00),我的图表一直持续到05:00。 我坚持如何实现这一目标。如果有人能提供帮助,我会很高兴的!

1 个答案:

答案 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") 

Time Series Graph