当 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")
我有下一个情节:
获取代码是这样的:
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")