[R] Adding per-panel text to panel strips in lattice xyplot

Frank E Harrell Jr f.harrell at vanderbilt.edu
Tue Oct 17 21:40:00 CEST 2006


Deepayan Sarkar wrote:
> On 10/13/06, Frank E Harrell Jr <f.harrell at vanderbilt.edu> wrote:
>> I would like to add auxiliary information to the bottom of two strips on
>> each panel that comes from a table look-up using the values of two
>> variables that define the panel.  For example I might panel on sex and
>> race, showing 3 randomly chosen time series in each panel and want to
>> add (n=100) in the bottom strip to indicate the 3 curves were sampled
>> from 100.  Is there a not-too-hard way to do that?
>>
>> I would like to do this both with and without groups= and superposition,
>> but especially with.
> 
> There might be, but it might be easier with some changes to lattice.
> Can you give a minimal example so that we can try out ideas?
> 
> Deepayan
> 

Thanks for your note Deepayan.  The difficulty is that the quantity to 
add may need to be obtained by a table look-up given current panel strip 
values.  I have gotten around this by duplicating the lookup values 
(here sizecluster) to correspond to x and y then using subscripts.  The 
code snippet below does not put the extra value in a strip but right 
under the bottom strip.  Better would be inside the bottom strip.

     textfun <- function(subscripts) {
       if(!length(subscripts)) return()
       size <- sizecluster[subscripts[1]]
       txt <- paste('N=',size,sep='')
       grid.text(txt, x=.005, y=.99, just=c(0,1),
                 gp=gpar(fontsize=9, col=gray(.25)))
     }

xyplot(Y ~ X | distribution*cluster, groups=curve,
                  xlab=xlab, ylab=ylab,
                  xlim=xlim, ylim=ylim,
                  as.table=TRUE,
  panel=function(x, y, subscripts, ...) {
         panel.superpose(x, y, subscripts, ...)
         textfun(subscripts)
       })

Thanks
-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University



More information about the R-help mailing list