[R] positioning of separate y-axis labels in xyplot
Benjamin Tyner
btyner at gmail.com
Wed Jun 14 17:23:04 CEST 2006
I like the functionality provided by outer=TRUE, but when it comes time
to place separate xlabs or ylabs, I always end up 'eyeballing' it on a
case-by-case basis. For example,
##begin example
require(lattice)
cars.lo <- loess(dist ~ speed, cars)
print(xyplot(cars.lo$residuals+cars.lo$fitted~cars.lo$x,
strip=FALSE,
outer=TRUE,
layout=c(1,2),
ylab="",
scales=list(y=list(relation="free",rot=0)),
panel=function(x,y,panel.number,...){
if(panel.number==1){
panel.xyplot(x,y)
panel.abline(h=0)
}else{
panel.xyplot(x,y=cars.lo$y)
panel.xyplot(x,y,type="l")
}
}))
require(grid)
trellis.focus("panel", 1, 1, clip.off=TRUE, highlight=FALSE)
grid.text("residuals", x=unit(0, "npc") + unit(-2, "lines"),rot=90)
trellis.focus("panel", 1, 2, clip.off=TRUE, highlight=FALSE)
grid.text("fitted", x=unit(0, "npc") + unit(-2, "lines"),rot=90)
## end example
In this case, a distance of -2 lines happens to be enough, but one has
to make the plot to know this. I'm interested in learning how one can
place the ylabs without fear of overlapping the tick labels; i.e., how
to use the exact space allocated by ylab="". I'm thinking it must
involve viewports?
Ben
More information about the R-help
mailing list