每毫秒绘制时间序列

时间:2015-09-24 09:59:35

标签: r plot time-series milliseconds

我无法让我的情节显示每毫秒的分数。它总是每秒聚合一次。但我每毫秒有数据。我做错了什么?

我有一个数据框:

                   time     x      y    z
2015-09-24 14:21:40.130  0.11  -0.19 1.54
2015-09-24 14:21:40.229  0.11  -0.19 1.54
2015-09-24 14:21:40.279  1.27  -0.55 1.69
2015-09-24 14:21:40.309  0.19   0.05 0.44
2015-09-24 14:21:40.342  1.15  -0.16 1.39
2015-09-24 14:21:40.426  0.03   0.88 0.12

时间栏是POSIXct时间

options(digits.secs=3)
data$time <- as.POSIXct(data$time, "%H:%M:%OS" ,tz = "GMT")

当我绘制它plot(data$time, data$z)时,它会在一秒钟内获取所有点并在同一条线上绘制。因此,如果我仅绘制4秒的数据帧,则会显示4个点的条带,而不是在秒之间包含的毫秒的连续分布。

我希望看到分数以毫秒为单位。 我也试过ggplot,但它也是一样的。 希望我的问题有点清楚,因为我无法发布任何图像。

图片请参阅:https://github.com/NieneB/rplot/blob/master/Rplot01.png

1 个答案:

答案 0 :(得分:2)

部分问题是规模。当您的比例涵盖数据分钟时,毫秒差异不会很好地分开。我已将您的示例扩展为包含四个数据集,这些数据集分隔几分钟,每个数据集位于您在链接中引用的图表所建议的相同秒内。 ggplot可用于绘制此图,如下所示:

library(ggplot2)
sp <- ggplot(cbind(data, DayHrMin=format(data$time,"%Y-%m-%d %H:%M:%S")), 
             aes(x=as.POSIXlt(time)$sec, y=z))
sp <- sp + geom_point()
sp <- sp + facet_wrap( ~ DayHrMin, scale="free_x")
plot(sp)

这将生成以下图表:

enter image description here