ggplotly завершается неудачно с geom_vline () со значением xintercept Date - PullRequest
2 голосов
/ 13 марта 2019

Попытка использовать ggplotly для построения графика временных данных с вертикальной линией для обозначения интересующих дат.

Ошибка вызова с Ошибка в Ops.Date (z [[xy]], 86400000): * не определена для объектов «Дата» . Я безуспешно пытался использовать как последние CRAN, так и разрабатываемые версии ggplot2 (согласно сюжетной рекомендации). Другие вопросы SO (например, ggplotly и geom_bar при использовании дат - последняя версия 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
...