全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
9975 4
2015-08-24
悬赏 5 个论坛币 已解决
有个问题困扰了我很久。
我有下面数据,第一列是小时+分钟,第二列是数值:
0000      112
0001      123
0002      122
...
0059      123
0100      120
...
2359      156

请问怎么把这个绘制成分钟颗粒度的时间序列图?直接使用ggplot函数画出来的横轴会是数字,而不是时间。

最佳答案

hongweigg 查看完整内容

道理是一样的,如果要保留时间格式,可以先将字符串时间数据转换为时间格式,然后再画图: #字符串转换为时间格式 xx
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-8-24 19:36:42
yilence 发表于 2015-8-26 09:12
谢谢回答,不过不好意思,你的答案不是我想要的。
我想要的是这样。这个可以通过ggplot2实现。
道理是一样的,如果要保留时间格式,可以先将字符串时间数据转换为时间格式,然后再画图:
#字符串转换为时间格式
xx<-strptime(x,"%H:%M")

#绘图
qplot(xx,y,xlab="时间",ylab="错误率",main="错误率变化图")

绘制效果图参见:http://blog.csdn.net/hongweigg/article/details/47988613
看是否是你想要的呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-25 23:28:46
这个问题的本质实际上是要统一时间刻度,可以先把时间转换为小时单位或分钟单位,然后再作为坐标刻度。
1、假设有矩阵y:
> 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为值。

2、进行时间转换
(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为矩阵中的数值。

通过绘图对比,两者的趋势和变化规律是完全一致的,只是时间轴的单位不同。
注意:如果观测值超过一天,则还要对天进行折算。

效果图参见:http://blog.csdn.net/hongweigg/article/details/47988613
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-26 09:12:51
hongweigg 发表于 2015-8-25 23:28
这个问题的本质实际上是要统一时间刻度,可以先把时间转换为小时单位或分钟单位,然后再作为坐标刻度。
1、 ...
谢谢回答,不过不好意思,你的答案不是我想要的。 时间图.png
我想要的是这样。这个可以通过ggplot2实现。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-26 23:32:00
yilence 发表于 2015-8-26 09:12
谢谢回答,不过不好意思,你的答案不是我想要的。
我想要的是这样。这个可以通过ggplot2实现。
如果你想保留时间格式,可以先将数据转换为时间格式,然后再画图。
假设有时间数据x:
> x
  [1] "0:1"  "0:2"  "0:3"  "0:4"  "0:5"  "0:6"  "0:7"  "0:8"  "0:9"  "0:10"
[11] "0:11" "0:12" "0:13" "0:14" "0:15" "0:16" "0:17" "0:18" "0:19" "0:20"
[21] "0:21" "0:22" "0:23" "0:24" "0:25" "0:26" "0:27" "0:28" "0:29" "0:30"
[31] "0:31" "0:32" "0:33" "0:34" "0:35" "0:36" "0:37" "0:38" "0:39" "0:40"
[41] "0:41" "0:42" "0:43" "0:44" "0:45" "0:46" "0:47" "0:48" "0:49" "0:50"
[51] "0:51" "0:52" "0:53" "0:54" "0:55" "0:56" "0:57" "0:58" "0:59" "1:0"
[61] "1:1"  "1:2"  "1:3"  "1:4"  "1:5"  "1:6"  "1:7"  "1:8"  "1:9"  "1:10"
[71] "1:11" "1:12" "1:13" "1:14" "1:15" "1:16" "1:17" "1:18" "1:19" "1:20"
[81] "1:21" "1:22" "1:23" "1:24" "1:25" "1:26" "1:27" "1:28" "1:29" "1:30"
[91] "1:31" "1:32" "1:33" "1:34" "1:35" "1:36" "1:37" "1:38" "1:39" "1:40"

观测数据y:
>y<-rnorm(100)
> y
  [1]  0.87712868 -0.40134861  1.08323341 -0.93902721 -0.92840951 -1.40612156
  [7] -3.10339460  0.15131072  0.48380452  0.89202039 -0.65595000 -1.59291257
[13] -0.92847687 -0.14931817  0.05102305 -2.92666369  1.13730537 -0.88515305
[19]  0.43151127 -0.69812564  0.22229680 -1.97363693 -1.40353484  0.94304827
[25] -0.45756544  0.68164255 -1.00422724 -0.80533052  0.59128945 -1.18172352
[31]  0.07428473 -0.03469865 -0.51392341  0.79084055 -1.14850486 -0.54046263
[37] -0.02900111  0.46538361 -0.79899558 -1.27138898  0.26639805  0.41695152
[43]  1.36159350 -0.23907673 -0.32639352 -1.49703421 -0.33806093 -0.56222054
[49]  0.04647622 -0.98232488  1.28961535  1.31219521 -0.20893550 -1.24307742
[55]  0.51683866  0.22621030  0.13882866 -0.03457370 -0.68909796 -1.14311280
[61] -1.81996267  0.69068287 -1.16380184 -0.76842632 -0.26537744 -0.94346247
[67] -0.48761086  0.53369090  0.49644045 -0.30901995  0.65937527 -0.18226427
[73]  1.01346741 -1.03014423  0.67036752  0.42735678  1.66863515  0.65309760
[79] -1.40057442  1.05346154  0.54984033  1.71869455  0.51632433  0.15091974
[85] -0.22607175 -0.28952495 -0.82730526  0.03708794 -0.29521562  0.28084754
[91]  0.24559514  0.23991062  0.22592170  1.16994149 -0.35928250  0.83258745
[97] -0.40319095  1.52669402  0.83994487  1.60509721

则先将时间进行转换:
xx<-strptime(x,"%H:%M")

然后再画图:
qplot(xx,y,xlab="时间",ylab="错误率",main="错误率变化图")

你可以到位置:
http://blog.csdn.net/hongweigg/article/details/47988613
看看,最后的效果是不是跟你提供的图一模一样?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群