当 x 轴的格式为“%Y-%m-%d %H:%M:%S”时,如何使用 annotate() 在我的 ggplot2 中添加字母?

How to add letters in my ggplot2 using annotate() when the x-axis is in the format `%Y-%m-%d %H:%M:%S`?

我有下一个情节:

获取代码是这样的:

Plot<- ggplot(foo,aes(x=Time, y=value, colour=Axis)) + 
  geom_line(size=1) +
  theme_bw() + 
  labs(x=expression(Time~(HMS)),y=expression(Raw~acceleration~(g))) + 
  theme(strip.background=element_blank(),
        axis.title.x =element_text(margin = margin(t = 10, r = 0, b = 0, l = 0),size = 16,face = "bold"),
        axis.title.y =element_text(margin = margin(t = 0, r = 10, b = 0, l = 0),size = 16,face = "bold"),
        axis.text.x = element_text(angle = 0, hjust = 0.5,size = 15),
        axis.text.y = element_text(angle = 0, hjust = 0.5,size = 15),
        axis.line = element_line(),
        panel.grid.major= element_blank(),
        panel.grid.minor = element_blank(),
        legend.text=element_text(size=14),
        legend.title = element_text(size=15, face = "bold"),
        legend.key=element_blank(),
        legend.position = "right",
        panel.border = element_blank(),
        strip.placement = "outside") +
  guides(color=guide_legend(override.aes=list(fill=NA))) +
  scale_x_datetime(labels = date_format("%H:%M:%S"),
    breaks=date_breaks("10 sec")) +
  scale_y_continuous(breaks = seq(-4,3,1))
Plot

我正在尝试使用 annotate() 在绘图中添加字母,但是我不知道如何获取它,因为 x 轴的格式是 %Y-%m-%d %H:%M:%S

Plot  + annotate("text", x=as.POSIXct("15:40:00"), y=-3.5, label= "A")
Error in as.POSIXlt.character(x, tz, ...) : 
  character string is not in a standard unambiguous format

有人知道怎么做吗?

提前致谢

我找到路了。我刚刚创建了一个对象,其 x 位置是我想要字母的位置。例如,在我的例子中,我希望这封信出现在 15:40:05 左右,所以我这样做了:

Time1 <- foo$Time[foo$Time>"2020-03-21 16:40:05.000" & foo$Time<"2020-03-21 16:40:05.100" & foo$Axis=="surge"]

一旦我有了那个,我只需要参考 annotate() 中的 Time1:

Plot  + annotate("text", x=Time1, y=-3.5, label= "A")