【发布时间】: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。