[R] Equal confidence interval arrowhead lengths across multiple-paneled lattice plots with free y-scales

Deepayan Sarkar deepayan.sarkar at gmail.com
Fri Nov 16 06:56:54 CET 2007


On Nov 15, 2007 8:08 PM, Bob Farmer <farmerb at gmail.com> wrote:
> Hi.
> I've got a lattice plot with multiple panels and two groups superimposed
> on each panel.  Each panel has an independently scaled y-axis (scales =
> list(relation = "free")).
>
> I've successfully put up 95%CI error bars using panel.arrows (and some
> help from the mailing list).  My question is whether I can "unscale" the
> arrowheads so that they appear to have the same length across all panels.
> I recognize from the help-file that the "length" argument in
> panel.arrows is in terms of grid units (which I assume are specific to
> the particular panel).  Can anybody think of a way to set the length so
> that it appears uniform across all panels?

The obvious approach would be to use a relative unit like "cm" or
"inch" instead of an absolute one like "native". Does that not work?

-Deepayan

>
> Example code:
>
>    summTable<-data.frame("X" = seq(1,12), "Y" =
> c(1,8,3,6,6,5,7,3,8,1,10,-2),
>      "Location" = rep(c("Site1", "Site2"), times = c(6,6)),
>      "Species" = rep(c("A", "B"), 6)
>      )
>
> #change scale for Site 1
>    summTable[1:6,2]<-100*summTable[1:6,2]
>
> #arbitrary confidence intervals
>    summTable<-cbind(summTable, "ly" = (summTable$Y*(.98)),
>      "uy" = (summTable$Y*1.02)
>      )
>
> #panel plotting
>    panel.func<-function(x,y,ly,uy,subscripts,...){
>      ly<-as.numeric(ly)[subscripts]
>      uy<-as.numeric(uy)[subscripts]
>      panel.arrows(x,ly,x,uy,
>        unit = "native",
>        angle = 90,
>        length = .25,
>        code = 3,
>        )
>      panel.xyplot(x,y,...)
>      }
>    xyplot(Y ~ X | Location, groups = Species,
>      type = "l",
>      data = summTable,
>      scales = list(relation = "free"),
>      ly = summTable$ly, uy = summTable$uy,
>      auto.key = T,
>      panel = panel.superpose,
>      panel.groups = panel.func
>      )
>
> Thank you.
>
> --Bob Farmer
> (using R 2.6.0 and lattice 0.16-5)
>
> ______________________________________________
> 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