R 在晶格xyplot上添加标签

R 在晶格xyplot上添加标签,r,label,lattice,R,Label,Lattice,我已经用lattice创建了一个xyplot library(lattice) X1=c(5, -2, 1, -3) X2=X1^2 names=paste("dot", 1:4, sep="") xyplot(X2~X1, data=data.frame(X1, X2), pch=20, cex=1:4) 现在我想为每个点添加一个标签(文本)。信息在里面 names=paste("dot", 1:4, sep="") 我试过以下方法,但没有成功 panel.text(x=X2, y=X1,

我已经用lattice创建了一个xyplot

library(lattice)
X1=c(5, -2, 1, -3)
X2=X1^2
names=paste("dot", 1:4, sep="")
xyplot(X2~X1, data=data.frame(X1, X2), pch=20, cex=1:4)
现在我想为每个点添加一个标签(文本)。信息在里面

names=paste("dot", 1:4, sep="")
我试过以下方法,但没有成功

panel.text(x=X2, y=X1, names)
或者,使用directlabels

library(directlabels)
p=xyplot(X2~X1,data=data.frame(X1, X2), pch=20, group=names, cex=1:4)
direct.label(p,smart.grid,FALSE)

但我不太喜欢它,因为我必须使用
group=names
将其分成几个组,基本上每个点都在不同的组中?还有其他方法吗?

您可以尝试定义一个新的面板功能:

xyplot(X2~X1, data=data.frame(X1, X2), pch=20, cex=1:4,
      panel=function(x, y, ...) {
               panel.xyplot(x, y, ...);
               ltext(x=x, y=y, labels=names, pos=1, offset=1, cex=0.8)
            })

我真的应该读一本关于这些面板的好教程。我不明白为什么我们必须调用2个函数,xyplot和panel.xyplot如果我想为pos提供一个向量呢?(每个点的位置数字不同,介于1和3之间)@RockScience:
xyplot
绘制整个图;
panel
参数中的函数告诉
xyplot
在每个面板中绘制什么。在本例中,它执行
xyplot
通常执行的操作(通过调用
panel.xyplot
,然后绘制一些额外的文本(通过调用
ltext
,尽管
panel.text
会使代码更清晰)。