Doris,

You might get lucky and find some kind soul who's willing to
dig through your *un*reproducible code, but your chances for
help would probably increase dramatically if you were to
provide *reproducible* and *minimal* code to illustrate your
problem. I imagine that you might benefit from reading the
posting guide.

It may be that trellis.focus() solves your problem.

 -Peter Ehlers

On 2010-06-02 8:46, Doris wrote:

Hi R experts,

I'm using the xyplot function in lattice to draw a multipanel plot consiting
of 5x6 scatterplots.
Now I need to link single points in each of those scatterplots (=panel),but
the points, that need linking are different for each panel.
I tried to use the panel.segments function for that, but I can't address
each panel separately. Links right for panel 1, show up in all other panels,
too. Tried functions like [panel.number()], but didn't work.

Would be so great, if somebody could help me with that!

That's the code, I used:

library(lattice)
library(latticeExtra)
#[...]
attach(mydata)
attach(links)  #containing the coordinates for the segments fx, fy, tx, ty

fx<- fx
fy<- fy
tx<- tx
ty<- ty

xyplot(LogN~LogM|factor(surber),
par.settings = list(strip.background = list(col = "transparent")),
xlab = "Log M", ylab = "Log N",
layout = c(6,5), aspect = 1, as.table = TRUE, strip=FALSE,
panel=function(x,y){
panel.xyplot(x,y,pch=20,col="black", bg="transparent")
panel.fill(col = "transparent")
panel.segments(fx,fy,tx,ty[panel.number()])

})


Also tried to split the data and loop it (but this code might be a bit
messy. Apologies!) sn is the variable used to split according to panel. I
just tried to do the links for 2 panel here:

fx<- split(links$fx,links$sn)
fy<- split(links$fy,links$sn)
tx<- split(links$tx,links$sn)
ty<- split(links$ty,links$sn)
sn<- sn
dothese<- c(1,2)
ct<- 0
for (i in dothese){
ct<- ct + 1
x1<- fx[[i]]
y1<- fy[[i]]
x2<- tx[[i]]
y2<- ty[[i]]
}


xyplot(LogN~LogM|factor(surber),
par.settings = list(strip.background = list(col = "transparent")),
xlab = "Log M", ylab = "Log N",
layout = c(6,5), aspect = 1, as.table = TRUE, strip=FALSE,
panel=function(x,y){
panel.xyplot(x,y,pch=20,col="black", bg="transparent")
panel.fill(col = "transparent")
panel.segments (x1,y1,x2,y2 [panel.number(1,2)])

})



Thanks, Doris

______________________________________________
R-help@r-project.org 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.

Reply via email to