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/