用R中的时间指数绘制时间序列

时间:2014-12-21 03:19:19

标签: r time-series

我有时间序列数据,如下所示:

                V1     V2     V3
1 01/01/04 07:43:00 1.2587 1.2597
2 01/01/04 07:47:52 1.2585 1.2595
3 01/01/04 17:46:14 1.2586 1.2596
4 01/01/04 17:56:08 1.2585 1.2595
5 01/01/04 17:56:15 1.2585 1.2595
6 01/01/04 17:56:28 1.2585 1.2595

我想绘制V2,以下是我写的代码:

V<-read.csv("price.csv",header=FALSE)
d1<-(V$V2)
plot.ts(d1)

然后这就是我得到的:

enter image description here

图表看起来很好,但我想将x轴更改为Jan,Feb,Mar,Apr ... Dec。有人可以告诉我这样做的方法吗?我尝试了strptime,然后使用了ggplot2,但它似乎无法正常工作。如果我的问题对我而言显而易见,我很抱歉,因为我是自学R 更新: 我的数据很大并且冻结了我的计算机,我只是再次运行它,以下是dput(head(V))的示例:

structure(list(V1 = structure(1:6, .Label = c("01/01/04 07:43:00", 
"01/01/04 07:47:52", "01/01/04 17:46:14", "01/01/04 17:56:08", 
"01/01/04 17:56:15", "01/01/04 17:56:28", "01/01/04 17:56:30", 
"01/01/04 17:56:40", "01/01/04 17:57:35", "01/01/04 17:58:40", 
"01/01/04 17:58:52", "01/01/04 18:00:48", "01/01/04 18:01:44", 
"01/01/04 18:01:52", "01/01/04 18:02:57", "01/01/04 18:03:14", 
.....
"31/12/04 20:59:55", "31/12/04 20:59:57", "31/12/04 20:59:58", 
"31/12/04 20:59:59", "31/12/04 21:00:01", "31/12/04 21:00:04", 
"31/12/04 21:00:06", "31/12/04 21:00:12", "31/12/04 21:00:17", 
"31/12/04 21:00:23", "31/12/04 21:00:24", "31/12/04 21:00:30", 
"31/12/04 21:00:31", "31/12/04 21:00:32", "31/12/04 21:00:37", 
"31/12/04 21:00:39", "31/12/04 21:00:45", "31/12/04 21:36:00"
 ), class = "factor"), V2 = c(1.2587, 1.2585, 1.2586, 1.2585, 
 1.2585, 1.2585), V3 = c(1.2597, 1.2595, 1.2596, 1.2595, 1.2595, 
 1.2595)), .Names = c("V1", "V2", "V3"), row.names = c(NA, 6L), class = "data.frame")

1 个答案:

答案 0 :(得分:2)

我建议:

V$V1=lubridate::mdy_hms(V$V1)
plot(V$V1,V$V2)

请注意,您需要lubridate包(我建议大多数人使用时间序列)。

这样,您不仅可以获得所需的图表,还可以将V1列转换为日期格式以供将来使用。

或者,如果你想坚持使用base R,你可以使用:

V$V1=strptime(V$V1,format='%m/%d/%y %T')
plot(V$V1,V$V2)

它也会起作用。