尝试使用ggplotly
用垂直线绘制时间序列数据以指示感兴趣的日期。
呼叫失败并显示Ops.Date(z[[xy]], 86400000) 中的错误:* 未为“Date”对象定义。我尝试使用最新的 CRAN 和 ggplot2 的开发版本(根据plotly的建议),但没有成功。其他 SO 问题(例如,使用日期时的 ggplotly 和 geom_bar - 最新版本的plotly(4.7.0))不解决我的担忧。
如下图所示,使用绘图对象p
- both ggplot
and 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
我刚刚使用@Axeman 的建议解决了这个问题。对于您的情况,您只需替换日期即可:
lubridate::ymd("2019-01-01")
becomes
as.numeric(lubridate::ymd("2019-01-01"))
不漂亮,但它有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)