On 9/6/07, GOUACHE David <[EMAIL PROTECTED]> wrote: > Hello R-helpers, > > I'm trying to add labels to points in xyplot graphs, but I want lo label only > those points which have a certain level of my grouping variable, and have > encountered a few problems. > An example dataframe that goes with the following code is at the end of this > message. > > 1st step, adding labels (from another column in the dataframe) to my chosen > points : > I've figures this out, but I am passing my whole dataframe as an extra > argument (arg1) which I realize is probably useless, so if anybody can give > me a way to work around this... > > xyplot(pp~nn,groups=vari,data=test,auto.key=list(space="right"),arg1=test,arg2="2",arg3="loc", > panel=function(x,y,groups,arg1,arg2,arg3,...) > { > panel.superpose(x,y,groups,...) > étiq<-rep("",times=length(x)) > > étiq[groups==arg2]<-as.character(arg1[groups==arg2,arg3]) > étiq<-as.character(étiq) > panel.text(x,y,labels=étiq,pos=1,cex=0.5,...) > } > ) > > What I would also like is to write a function that is robust for multiple > panel displays or subsetting : >
This is not the only way, but the most transparent one I can think of: xyplot(pp ~ nn, groups = vari,data = test, labels = test$loc, do.label = (test$vari == "2"), auto.key=list(space="right"), panel = function(x, y, groups, subscripts, labels, do.labels, ...) { panel.xyplot(x, y, groups = groups, subscripts = subscripts, ...) labels <- labels[subscripts] do.labels <- do.labels[subscripts] panel.text(x[do.labels], y[do.labels], labels = labels[do.labels], pos = 1, cex=0.5, ...) }) -Deepayan ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.