如何在ts_plot中添加垂直线?

时间:2019-04-30 01:13:18

标签: r ggplot2 rtweet geom-vline

我已经从Twitter用户那里下载了时间轴,并尝试显示一段时间内的推文数量。我正在使用rtweets ts_plot。现在,我试图在图形中添加一条垂直线。据我所知,ts_plot允许您像正常的ggplot一样使用它。因此,我尝试了ggplot2的geom_vline:

这是我的代码:

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 个答案:

答案 0 :(得分:0)

首先,由于不需要映射到列名,因此不需要使用aes()

ts_plot的x轴刻度是日期时间刻度,因此您需要相应地转换值。这样的事情应该起作用:

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