[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