r - 如何为格子中的每个面板添加不同的文本

标签 r 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

我曾尝试使用 panel.text 但它将标签添加到每个面板。有谁知道如何实现这一目标?您的帮助将不胜感激。

最佳答案

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

关于r - 如何为格子中的每个面板添加不同的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780154/

相关文章:

r - 为时间序列数据中的不同日期添加多个vlan

r - 如何使用ggplot2和lattice在直方图上叠加分布曲线

r - 在R中绘制线框和带有格子的云

R:当 row.values 和 column.values 的范围很小时,Levelplot 会给出多余的空白

根据单列中的值删除 R 中的行

r - 理解多项式网络

r - 在 r 中绘制每月和每年的天气数据

R levelplot 删除外边框(调整绘图边框)

r - 在 R 中索引矩阵的元素

r - 如何从带有列表列的 tibble 中提取单个元素,该列表列是具有不等维度的列表列表?