【发布时间】:2019-08-04 14:44:12
【问题描述】:
尝试使用ggplotly 用垂直线绘制时间序列数据,以指示感兴趣的日期。
调用失败,Ops.Date(z[[xy]], 86400000) 出错:* 未为“日期”对象定义。我尝试使用 ggplot2 的最新 CRAN 和开发版本(根据情节推荐)均未成功。其他 SO 问题(例如,ggplotly and geom_bar when using dates - latest version of plotly (4.7.0))没有解决我的顾虑。
如下图所示,绘图对象 p - ggplot 和 ggplotly 都按预期工作。但是,当 geom_vline() 被添加到 p2 中的绘图时,它只能在 ggplot 中正常工作,调用 ggplotly(p2) 时失败。
library(plotly)
library(ggplot2)
library(magrittr)
set.seed(1)
df <- data.frame(date = seq(from = lubridate::ymd("2019-01-01"), by = 1, length.out = 10),
y = rnorm(10))
p <- df %>%
ggplot(aes(x = date, y = y)) +
geom_line()
p ## plots as expected
ggplotly(p) ## plots as expected
p2 <- p + geom_vline(xintercept = lubridate::ymd("2019-01-08"), linetype = "dashed")
p2 ## plots as expected
ggplotly(p2) ##fails
【问题讨论】:
-
您可能应该在
plotly中将其报告为错误。作为一种临时解决方法,您可以将日期更改为数字,并手动执行坐标轴(即使用scale_x_continuous和正确的中断和标签)。
标签: r ggplot2 r-plotly ggplotly