R:我的数据集中的 as.POSIXct 时区和 scale_x_datetime 问题

标签 r ggplot2 posixct

我花了一些时间试图弄清楚为什么在应用 scale_x_datetime 时小时刻度会发生变化。我试图在创建日期/时间列时提供时区。我使用了包 scales 中的 ggplot 和 scale_x_datetime() 。小时刻度错误,哪个数据点与其日期/时间列中的时间不匹配。

这是处理我的数据集的一些程序。

  DF$DateTime<-as.POSIXct(DF$timestamp,format="%m/%d/%y %H:%M", tz="America/Toronto")
  DF$Date<-as.Date(DF$DateTime)

  lims <- as.POSIXct(strptime(c("2015-07-21 00:00","2015-07-23 00:00"), format = "%Y-%m-%d %H:%M"), tz="America/Toronto")    

  ggplot(DF) + geom_line(aes(x=DateTime, y=-Diff,group=Date)) + scale_x_datetime(limits =lims, breaks=date_breaks("2 hour"), labels=date_format("%m/%d %H:%M"))

我在这里想念什么吗?请帮我弄清楚。
非常感谢!

最佳答案

函数date_format()需要一个 tz默认设置为 "UTC" 的参数.因此,您的标签将转换为 UTC。要使用时区“美国/多伦多”,您可以执行以下操作:

scale_x_datetime(limits = lims, breaks = date_breaks("2 hour"),
    labels = date_format("%m/%d %H:%M", tz = "America/Toronto"))

这个参数是在 0.2.5 版本中引入的。使用 date_format() 的代码要在 UTC 以外的其他时区创建绘图,必须在更新后更改。

关于R:我的数据集中的 as.POSIXct 时区和 scale_x_datetime 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36227130/

相关文章:

r - 如何在R中获得回归输出,忽略数据中的一个因素水平?

r - ggplot 动态更改 x 轴标签颜色

r - 如何在 R 中使用折线图表示变量上的簇内的子簇

r - 将毫秒列添加到日期时间

r - 如何计算R中两个日期之间的天数

r - 引用类的有效性方法

r - 如何仅使用目标列的一个值来使用 Spread 函数?

r - 如何修复 R 中 ggplot2 的 geom_jitter() 不稳定的 y 位置?

r - 如何从日期时间创建日期(使用 lubridate)?

r - 在 R 中 - 对于所有 TRUE,所有后续列都为 TRUE 吗?