Hi
Mike Lawrence wrote:> I'm having trouble centering multi-line strip text in lattice. As the
> code below demonstrates bounding box of the text is centered within
> the strip, but the first line isn't centered in relation to the longer
> second line. The "adj" argument to par.strip.text doesn't
seem to do
> much. Suggestions?
>
> a=data.frame(
> x=rep(1:10,2)
> ,y=rep(1:10,2)
> ,z=rep(c('First Line\nLonger Second Line (1)','First
Line\nLonger
> Second Line (2)'),each=10)
> )
>
> xyplot(
> y~x|z
> ,data=a
> ,par.strip.text = list(cex = .75, lineheight=1, lines = 2, adj=.5),
> )
Here's one way, by writing your own strip function that calls the
default strip function with blanked out labels then draws the labels
directly with 'grid' calls.
xyplot(
y~x|z
,data=a
,par.strip.text = list(lines = 1.5),
strip=function(which.panel, factor.levels, ...) {
strip.default(which.panel=which.panel,
factor.levels=rep("",
length(factor.levels)),
...)
pushViewport(viewport(clip="on"))
grid.text(factor.levels[which.panel],
gp=gpar(cex=.75, lineheight=1))
popViewport()
}
)
Paul
--
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/