Hi listers,

I want to make lattice plots xyplots with the indication of legends 
inside each panel with only the points and the lines actually ploted 
inside each given panel according to the group(ing) factor.

The code below shows what I have achieved so far and I hope will make 
clear what I want to have.
It seems to me that my solution is a very "dirty hack" and there 
certainly is a much simple and "clean" way to do it.
Besides, there is no concordance in lty and pch between the legend above 
the graph with those inside the panels.

I have searched the archive and the web and found some hints that helped 
me a lot to write the code below. But I am not very familiar with 
lattice trellis graphs and I am sure that I am missing something.
I would appreciate any suggestion that will help me to improve this.

Thank you in advance,

Tito

require(lattice)
require(grid)
# some random data
lbt <- abs(rnorm(100)) # any biological value
de <- rep(1:10,10) # the depth
type <- rep(c("A","C","F","S"), c(20,30,40,10)) # the type of sampling zone
sta <- as.factor(rep(1:10, c(10,10,10,10,10,10,10,10,10,10))) # the 
station number
dataf <- data.frame(lbt,de,type,sta) # the dataframe
# key creation
keyA <- list(border = FALSE, text = 
list(levels(dataf$sta)[1:2]),lines=TRUE,points=TRUE,lty=c(1:2),pch=c(1:2))
keyC <- list(border = FALSE, text = 
list(levels(dataf$sta)[3:5]),lines=TRUE,points=TRUE,lty=c(3:5),pch=c(3:5))
keyF <- list(border = FALSE, text = 
list(levels(dataf$sta)[6:9]),lines=TRUE,points=TRUE,lty=c(6:9),pch=c(6:9))
keyS <- list(border = FALSE, text = 
list(levels(dataf$sta)[10]),lines=TRUE,points=TRUE,lty=c(10),pch=c(10))

# the plot
xyplot(lbt ~ de | type, data=dataf, groups = 
sta,type=c("p","g","r"),layout=c(4,1),par.settings = 
standard.theme(color = FALSE), auto.key=list(space="top", columns=5, 
lines=TRUE))

# add "legends" inside the panels
trellis.focus("panel", 1, 1) ; draw.key(keyA, draw = TRUE, vp = 
viewport(.25, .9))
trellis.focus("panel", 2, 1) ; draw.key(keyC, draw = TRUE, vp = 
viewport(.75, .9))
trellis.focus("panel", 3, 1) ; draw.key(keyF, draw = TRUE, vp = 
viewport(.75, .9))
trellis.focus("panel", 4, 1) ; draw.key(keyS, draw = TRUE, vp = 
viewport(.75, .9))
trellis.unfocus()


-- 
Luis Tito de Morais
IRD - UMR LEMAR (IRD/UBO/CNRS/IFREMER)

Tél. : +33 2 98 49 86 35
Mob. : +33 6 37 67 21 40

Courriel-1 : luis.tito-de-mor...@ird.fr
Courriel-2 : luis.titodemor...@univ-brest.fr

Pages web :
Lab. : http://www-iuem.univ-brest.fr/UMR6539/recherche/equipe-5
Pers. : http://ird.academia.edu/LuisTitodeMorais
Reshal : http://www.netvibes.com/reshal#Accueil
Biblio. : http://www.citeulike.org/user/ltitodem


        [[alternative HTML version deleted]]

______________________________________________
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