我想在格子的xyplot中为每个面板添加不同的文本。
res<- xyplot(CumSpec ~ CumTotal | Site, data=data1, index.cond=list(c(1,2,3)),layout = c(3,1,1), aspect = 1,
axis=axis.overlap, origin=0, xlab="Total number of individuals", ylab="Total number of species",
between = list(x = 0),
scales=list(tick.number = 8, cex = .9, x=list(alternating=1), x=list(rot=90)),
par.settings = my.settings,
par.strip.text=list(col="white", font=2),
panel = function(x, y) {
panel.xyplot(x, y)
panel.abline(lm(y ~ x), lwd = 0.5, lty=2)
panel.text(400, 4.6, label="R=0.334", font=1)
})
res
我尝试过使用panel.text,但它会在每个面板上添加标签。有谁知道怎么做到这一点,拜托?你的帮助将不胜感激。
答案 0 :(得分:5)
您想要的基本策略是首先提出一个字符向量,其中向量中的每个元素都是您在特定面板上所需的文本。然后,您可以使用panel.number()
函数为每个面板选择字符向量的不同元素。这是一个简单的例子:
library(lattice)
X<-rnorm(100)
Y<-rnorm(100)
Z<-c(rep("A",50),rep("B",50))
df1<-data.frame(X,Y,Z)
MyText<-c("Panel 1 Text", "Panel 2 Text")
xyplot(X~Y|Z, data=df1,
panel=function(x, y,...){
panel.xyplot(x,y,...)
panel.text(0,0,labels=MyText[panel.number()]) }
)
您可以将此策略用于您希望从面板更改为面板的任何内容(例如,标签,颜色,pch
值的x和y位置等。)