【问题标题】:Make date tick marks align properly with plotted data points in ggvis使日期刻度线与 ggvis 中绘制的数据点正确对齐
【发布时间】:2014-08-26 04:42:36
【问题描述】:

考虑由该数据框绘制的以下两个图:

temp = data.frame(x = seq(as.Date('2014-08-01'),as.Date('2014-08-30'),by=1), 
                  y = 1:30,
                 x2 = 1:30)

使用ggvis 绘制不是日期的向量没有问题:

temp %>%
    ggvis(~x2,~y) %>%
    layer_points()

但是,当我们尝试使用日期(在本例中为 x 轴)时,我们看到刻度线不再与绘制的点对齐。

temp %>%
    ggvis(~x,~y) %>%
    layer_points()

我猜这是某种错误,但在此期间,似乎我们可以通过将 x 轴刻度移动一定量来修复它,但我不知道这个量是多少,我也不知道知道如何移动刻度线。

【问题讨论】:

  • 强烈怀疑这是因为它将日期解释为该日期的正午(12:00),但轴线是在该日期开始时绘制的(00:00)。尝试将您的日期转换为时间分量为 00:00 的日期时间 (POSIXct),看看它们是否符合要求。
  • 看点 Spacedman!发布它作为解决方案!只需使用:temp = data.frame(x = seq(as.POSIXct('2014-08-01'),as.POSIXct('2014-08-30'),by=86400), y = 1:30, x2 = 1:30)
  • 实际上我怀疑您应该升级ggvis,因为当我尝试您的代码(版本 0.3.0.1)时,这些点对我来说排列得很好。我在评论时不知道这一点的原因是因为该评论是在我等待 ggvis 及其所有部门安装时写的......
  • 有意思,我在最新版本:> packageVersion("ggvis") [1] ‘0.3.0.1’
  • 我在 mac 上有 0.3.0.1 版本,我也遇到了同样的问题。我正在使用 CRAN 手册页 53-54 中的示例,但 by=86400 生成了正确的数字。这是一件非常好的事情。非常感谢,Alex 和 Spacedman。

标签: r ggvis


【解决方案1】:

我发现将数据中的每次观察的时间设置为早上 6:00 可以“修复”问题,使其与日期刻度线对齐。例如。日期变量:

 [1] "12/27/2015 6:00:00" "12/29/2015 6:00:00" "12/26/2015 6:00:00" "12/30/2015 6:00:00"
 [5] "12/31/2015 6:00:00" "12/28/2015 6:00:00" "12/31/2015 6:00:00" "12/29/2015 6:00:00"
 [9] "12/30/2015 6:00:00" "12/31/2015 6:00:00" "12/26/2015 6:00:00" "12/28/2015 6:00:00"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    相关资源
    最近更新 更多