Как я могу добавить вертикальную линию в ts_plot? - PullRequest
0 голосов
/ 30 апреля 2019

Я скачал временную шкалу от пользователя твиттера и пытаюсь визуализировать количество твитов с течением времени.Я делаю это с помощью rtweets ts_plot.Теперь я пытаюсь добавить вертикальную линию в моем графике.Насколько я знаю, ts_plot позволяет вам работать с ним, как если бы это был обычный ggplot.Поэтому я попробовал geom_vline ggplot2:

Это мой код:

zanetti <- get_timeline("@zac1967", n=3200)

ts_plot(zanetti, "days") +
  theme_bw() +
  xlab("") +
  ylab("# of tweets/day") +
  geom_vline( aes(xintercept = "2019-03-21 00:00:00 UTC"))

Однако я получаю это сообщение об ошибке:

  no applicable method for 'rescale' applied to an object of class "character" 

Так что я попробовал тот же кодно добавляется как .numeric в последней строке:

ts_plot(zanetti, "days") +
  theme_bw() +
  xlab("") +
  ylab("# of tweets/day") +
  geom_vline( aes(xintercept = as.numeric("2019-03-21 00:00:00 UTC")))

, что приводит к следующему сообщению об ошибке:

Warning messages:
1: In FUN(X[[i]], ...) : NAs introduced by coercion
2: Removed 53 rows containing missing values (geom_vline). 

1 Ответ

0 голосов
/ 30 апреля 2019

Во-первых, вам не нужно использовать aes(), поскольку вы не сопоставляете имя столбца.

Шкала оси x для ts_plot является шкалой даты-времени, поэтому вам необходимо соответствующим образом преобразовать значение. Примерно так должно работать:

+ geom_vline(xintercept = as.POSIXct("2019-03-21 00:00:00", tz = "UTC"))
...