[R] generate individual panel keys/legends in lattice barchart

Rebecca Fisher rebecca_fisher76 at yahoo.com.au
Thu Apr 23 10:23:11 CEST 2009


Dear R users.
I am wondering what is the simplest way is to generate individual keys for each panel in a lattice barchart?
The help pages said: "To use more than one legend, or to have arbitrary legends not constrained by the 
structure imposed by key, use the legend argument", but after trying several iterations, I could not get it to work.
any help you could give would be great,
Regards,
Rebecca.


############# code to reproduce my graph #####################
my_subcat_data <-
structure(list(subcat = structure(c(9L, 6L, 1L, 3L, 11L, 5L, 
12L, 10L, 2L, 4L, 7L, 8L, 9L, 6L, 1L, 3L, 11L, 5L, 12L, 10L, 
2L, 4L, 7L, 8L, 9L, 6L, 1L, 3L, 11L, 5L, 12L, 10L, 2L, 4L, 7L, 
8L, 9L, 6L, 1L, 3L, 11L, 5L, 12L, 10L, 2L, 4L, 7L, 8L, 9L, 6L, 
1L, 3L, 11L, 5L, 12L, 10L, 2L, 4L, 7L, 8L), .Label = c("acidification", 
"artesenal fishing", "bleaching", "commercial fishing", "destructive fishing", 
"eutrophication", "ocean warming", "oil spill", "overfishing", 
"recreational fishing", "sea level rise", "sedimentation"), class = "factor"), 
    threat = structure(c(1L, 3L, 2L, 2L, 2L, 1L, 3L, 1L, 1L, 
    1L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 1L, 3L, 1L, 1L, 1L, 2L, 3L, 
    1L, 3L, 2L, 2L, 2L, 1L, 3L, 1L, 1L, 1L, 2L, 3L, 1L, 3L, 2L, 
    2L, 2L, 1L, 3L, 1L, 1L, 1L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 1L, 
    3L, 1L, 1L, 1L, 2L, 3L), class = "factor", .Label = c("fishing", 
    "global warming", "pollution")), percent = c(1, 1, 1, 1, 
    1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 
    1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 2, 7, 6, 3, 
    8, 1, 1, 2, 2, 9, 4, 6, 9, 10, 2, 11, 8, 3, 1, 3, 5, 7), 
    decade = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 
    4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L), .Label = c("1960 - 1970", "1970 - 1980", 
    "1980 - 1990", "1990 - 2000", "2000 - 2010"), class = "factor")), .Names = c("subcat", 
"threat", "percent", "decade"), row.names = c(NA, -60L), class = "data.frame")

library(lattice)

subcat.plot=barchart(decade ~ percent | threat, data = my_subcat_data,
groups=subcat,
subscripts=TRUE,
stack=TRUE,
xlab=list("Percent of coral reef papers (%)",cex=1.3,font=2),
xlim=c(0,50),
ylab="",
auto.key = list(points = FALSE, rectangles = TRUE, space = "right"),
box.ratio = 2,
as.table=TRUE,
strip=strip.custom(bg="white",par.strip.text=list(font=2,cex=0.9)),
layout = c(1,length(levels(my_subcat_data$threat))),
scales=list(alternating=FALSE, cex=1,font=2,tck = c(1, 0)))
subcat.plot

 ------------------------------------------------------------ 
Dr Rebecca Fisher
Quantitative Ecologist
Australian Institute of Marine Science
Alternate email:rfisher at aims.gov.au
------------------------------------------------------------



      Enjoy a better web experience. Upgrade to the new Internet Explorer 8 optimised for Yahoo!7. Get it now.




More information about the R-help mailing list