Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add labels on lattice xyplot

Tags:

r

label

lattice

I have created a xyplot with lattice

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)

Now I want to add a label (text) for each dot. The info is in

names=paste("dot", 1:4, sep="")

I have tried with no success the following

panel.text(x=X2, y=X1, names)

or, using 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)

but I don't like it much because I had to split into groups using group=names, basically each dot is in a different group? Is there another way to do it?

like image 981
RockScience Avatar asked Jul 07 '11 06:07

RockScience


1 Answers

You can try defining a new panel function:

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)
            })
like image 86
Apprentice Queue Avatar answered Sep 23 '22 13:09

Apprentice Queue