标签:r语言
有个问题困扰了我很久。
我有下面数据,第一列是小时+分钟,第二列是数值:
0000 112
0001 123
0002 122
...
0059 123
0100 120
...
2359 156
请问怎么把这个绘制成分钟颗粒度的时间序列图?直接使用ggplot函数画出来的横轴会是数字,而不是时间。
这个问题的本质实际上是要统一时间刻度,可以先把时间转换为小时单位或分钟单位,然后再作为坐标刻度。
> y
x x2
[1,] "0000" "0.861078206472926"
[2,] "0001" "-0.0993158925503671"
[3,] "0011" "-0.227230172016484"
[4,] "1201" "0.0763049905510434"
[5,] "1203" "-1.64848265734858"
[6,] "1409" "0.771992874036383"
[7,] "1508" "0.111608655100976"
[8,] "1520" "-1.09952899544323"
x为小时+分钟字符串变量,x2为值。
(1)转换为单位为分钟的时刻
> x1b<-round(as.numeric(substr(y[,1],1,2)) + as.numeric(substr(y[1,],3,4)) / 60,digits=2)
> plot(x1b,x2)
x1b为转换后的时间,x2为矩阵中的数值。
(2)转换为单位为小时的时刻
> x1c<-as.numeric(substr(y[,1],1,2))*60 + as.numeric(substr(y[1,],3,4))
> plot(x1c,x2)
x1c为转换后的时间,x2为矩阵中的数值。
通过绘图对比,两者的趋势和变化规律是完全一致的,只是时间轴的单位不同。
注意:如果观测值超过一天,则还要对天进行折算。
(1)小时为单位
(2)分钟为单位
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:r语言
原文地址:http://blog.csdn.net/hongweigg/article/details/47988613