绘制垂直线以区分不同“类别”的数据

Raf*_*din 1 r ggplot2

我的数据框丢失了这样的东西

Year<-c(2009, 2008.75, 2008.5, 2008.25, 2008, 2007.66, 2007.33, 2007, 2006, 2006.75, 2006.5, 2006.25, 2005, 2005.66, 2005.33, 2004)
Depth<-c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
Data<-runif(16, -1.0, 1.0)
dd<-data.frame(Year, Depth, Data)
Run Code Online (Sandbox Code Playgroud)

现在......我需要绘制数据与深度,到目前为止我正在使用 ggplot2 和一个看起来像这样的代码

G<-ggplot(dd, aes(Depth, Data))+
    geom_line(color="blue3", size=.25)
G<-G+ggtitle("Title")+theme_bw()
G<-G+labs(x="Depth (m)",  y=expression("norm value"))
G
Run Code Online (Sandbox Code Playgroud)

但我还需要添加垂直线,以区分对应于每年开始的图表的不同“部分”(即 dd 数据集的 Year 列的每个整数)。我不需要它很花哨,我只需要在每个对应深度的细黑垂直线作为年份的整数值。ggplot2可以吗?

G. *_*eck 5

geom_vline像这样使用:

G + geom_vline(xintercept = dd$Depth[dd$Year %% 1 == 0])
Run Code Online (Sandbox Code Playgroud)

也可以这样写:

library(dplyr)
G + geom_vline(aes(xintercept = Depth), data = ~ filter(.x, Year %% 1 == 0))
Run Code Online (Sandbox Code Playgroud)

截屏