使用R中的晶格为xyplot中的每个面板添加不同的垂直线

时间:2014-01-17 00:54:32

标签: r lattice

我有一个关于我在格子包中使用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)'。目前,我在我的数据集中绘制了所有年份,其中进行了化学处理,但是,我希望它在每个小组中显示哪一年对该特定位点进行了处理。

非常感谢任何见解。

谢谢,
保罗

0 个答案:

没有答案