【问题标题】:Plot time series per millisecond每毫秒绘制时间序列
【发布时间】:2015-09-25 00:56:07
【问题描述】:

我无法让我的绘图显示每毫秒的点数。它总是每秒聚合在一起。但我每毫秒有数据。我做错了什么?

我有一个数据框:

                   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

【问题讨论】:

  • 你在用什么? zoo, xts, ts ?
  • 只是'绘图{图形}'
  • 我的意思是你的时间序列对象;你的时间序列对象的类是什么?
  • 这是一个data.frame,data$time 为POSIXct

标签: r plot time-series milliseconds


【解决方案1】:

部分问题在于规模。当您的规模涵盖几分钟的数据时,毫秒差异并没有很好地分开。我已将您的样本扩展为包括四个数据集,这些数据集相隔几分钟,并且每个数据集位于您在链接中引用的图表所建议的同一秒内。 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)

这会生成以下图表:

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 2020-05-18
    • 2017-02-26
    • 2012-06-29
    • 2018-01-27
    • 2015-12-24
    • 1970-01-01
    • 2013-02-23
    • 2015-07-05
    相关资源
    最近更新 更多