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

Deepayan Sarkar deepayan.sarkar at gmail.com
Tue Apr 28 23:19:42 CEST 2009


On Thu, Apr 23, 2009 at 1:23 AM, Rebecca Fisher
<rebecca_fisher76 at yahoo.com.au> wrote:
>
> 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,

Write a custom panel function, and call draw.key() inside. See the
code for Figure 12.1 in
http://lmdvr.r-forge.r-project.org/figures/figures.html for an example
you can modify.

-Deepayan

> 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.
>
> ______________________________________________
> R-help at 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.
>




More information about the R-help mailing list