[R] Centering multi-line strip text in lattice

Mike Lawrence Mike.Lawrence at dal.ca
Thu Mar 12 03:16:06 CET 2009


Perfect, thanks!

On Wed, Mar 11, 2009 at 7:41 PM, Paul Murrell <p.murrell at auckland.ac.nz> wrote:
> 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/
>



-- 
Mike Lawrence
Graduate Student
Department of Psychology
Dalhousie University

Looking to arrange a meeting? Check my public calendar:
http://tinyurl.com/mikes-public-calendar

~ Certainty is folly... I think. ~




More information about the R-help mailing list