R 如何向晶格中的每个面板添加不同的文本

R 如何向晶格中的每个面板添加不同的文本,r,lattice,R,Lattice,我想向lattice中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",

我想向lattice中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

res您想要的基本策略是首先提出一个字符向量,其中向量中的每个元素都是您想要在特定面板上显示的文本。然后可以使用
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()]) }
 )
库(晶格)

XIt最好提供或使用内置数据集,以便我们可以轻松地重新创建绘图,并向您展示如何获得所需的结果。否则这只是一些我们无法真正使用的任意代码。嗨。如果有人希望每个面板有不同的坐标,您将如何传达解决方案?@Alexandremondani如果您希望文本有不同的x和y坐标,您将使用每个面板的x和y坐标制作两个向量,例如
MyX
MyY
。然后有
panel.text(x=MyX[panel.number()],y=MyY[panel.number()],labels=MyText[panel.number()])
谢谢你,我做到了。然而,现在我在试图将
Mytext
的元素放入单个面板时遇到了一个问题,我只在每个面板中使用了一个元素。你知道我怎样才能做到这一点吗?@Alexandremondani你也许应该就此提出一个新问题。