Добавить метки на решетке xyplot - PullRequest
5 голосов
/ 07 июля 2011

Я создал 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, в основном каждая точка находится в другой группе?Есть ли другой способ сделать это?

1 Ответ

9 голосов
/ 07 июля 2011

Вы можете попробовать определить новую функцию панели:

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)
            })
...