Как я могу добавить вертикальную линию в ts_plot?
Я скачал временную шкалу от пользователя твиттера и постараюсь визуализировать количество твитов с течением времени. Я делаю это с помощью 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"
Поэтому я попробовал тот же код, но добавил в последней строке as.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 ответ
Во-первых, вам не нужно использовать aes()
так как вы не сопоставляете имя столбца.
Шкала оси X для ts_plot
это шкала даты и времени, поэтому вам необходимо соответствующим образом преобразовать значение. Примерно так должно работать:
+ geom_vline(xintercept = as.POSIXct("2019-03-21 00:00:00", tz = "UTC"))