如何在时间序列ggplot中添加文本注释

时间:2018-10-16 19:12:04

标签: r ggplot2 posixct annotate

我知道annotate(),您需要添加x和y坐标。问题是我的x是类“ POSIXct”和“ POSIXt”。因此,当我尝试使用注释时,R响应,对象必须是POSIXct。我尝试了各种组合来解决此问题……没有成功。

1 个答案:

答案 0 :(得分:1)

确保注释中的x参数编码为POSIXct。例如,使用网格包中的大麦数据集,我们可以将年份重新编码为POSIXct,然后进行注释:

library(lattice)
library(tidyverse)

barley %>%
  #convert year from factor to numeric, and then to POSIXct
  mutate(year = as.numeric(levels(year))[year],
         year = as.POSIXct(paste0(year, "-01-01"))) %>% 
  group_by(year) %>% 
  summarise(AvgYield = mean(yield)) %>% 
  ggplot(aes(year, AvgYield)) + 
    geom_line() + 
    #now to annotate, just make sure to code x as POSIXct 
    #in a range that will appear on the plot
    annotate("text", x = as.POSIXct("1931-04-01"), y = 34, label = "Some text")