我有一个按年份排列的几个站点的植物物种频率图,我正在使用 grid 包中的 xyplot 绘制这些站点。我已经弄清楚如何获取每个物种位点组合的散点图。但是,我想添加一个 abline 代表进行化学处理的每年。每个地点在不同年份添加了化学处理,我想为每个物种地点图添加一个垂直的 abline,其中在该地点进行了化学处理。这是我的 xyplot 代码:
library(plyr)
sp.1 <- data.frame(site=rep('a', 10), year=seq(2001, 2010, 1), year.trt=c(NA, NA, NA, NA, 2005, NA, NA, 2008, NA, NA), pl.1=rnorm(10, 4, 1), pl.2=rnorm(10, 6, 2))
sp.2 <- data.frame(site=rep('b', 10), year=seq(2001, 2010, 1), year.trt=c(2001, NA, NA, NA, NA, 2006, NA, NA, NA, NA), pl.1=rnorm(10, 5, 2), pl.2=rnorm(10, 4, 1))
sp.3 <- data.frame(site=rep('c', 10), year=seq(2001, 2010, 1), year.trt=c(NA, NA, NA, 2004, NA, NA, NA, NA, 2009, NA), pl.1=rnorm(10, 8, 1), pl.2=rnorm(10, 3, 3))
data <- rbind.fill(sp.1, sp.2, sp.3)
xy.plot <- xyplot(pl.1 + pl.2 ~ year | site, data=data, outer=T, type='l',
as.table=T, xlab=c('Year'), ylab=c('Spp. Frequency (%)'),
panel=function(x, y,...){
panel.xyplot(x,y, type='l')
panel.abline(v=data$year.trt)
})
print(xy.plot)
因此,该块中重要的代码行是“panel.abline(v=test$trt.year)”。目前,这绘制了我的数据集中进行化学处理的所有年份,但是,我希望它在每个面板中显示对该特定地点进行处理的年份。
任何见解将不胜感激。
Thanks,
Paul