Problem with viewports, print.trellis and more/newpage
On Thu, May 14, 2009 at 1:58 PM, Sebastien Bihorel
<sebastien.bihorel at cognigencorp.com> wrote:
Dear R-users, I have got the following problem. I need to create 4x2 arrays of xyplot's on several pages. The plots are created within a loop and plotted using the print function. It seems that I cannot find the proper grid syntax with my viewports, and the more/newpage arguments. The following script is a simplification but hopefully will suffice to illustrate my problem. Any suggestion from the list would be greatly appreciated.
Without looking at it in detail, here's one bit of advice that might help: if you are using pushViewport(), don't use 'more', use only 'newpage', and preferably don't use 'split' either. In particular, if you are using 'more', the first print.trellis() call will always start a new page, and your viewport will be lost. -Deepayan
Sebastien
#########
library(lattice)
foo <- data.frame(x=1:10,y=1:10)
for (i in 1:4) {
?#isnewpage <- ? ? FALSE
?plots <- xyplot(y~x,data=foo)
?pushViewport(viewport(x=0,
? ? ? ? ? ? ? ? ? ? ? y=0,
? ? ? ? ? ? ? ? ? ? ? width=1,
? ? ? ? ? ? ? ? ? ? ? height=0.95,
? ? ? ? ? ? ? ? ? ? ? just=c(0,0)))
?print(plots, split=c(1,1,2,4), more=T)#, newpage=isnewpage)
?print(plots, split=c(2,1,2,4), more=T)#, newpage=isnewpage)
?print(plots, split=c(1,2,2,4), more=T)#, newpage=isnewpage)
?print(plots, split=c(2,2,2,4), more=T)#, newpage=isnewpage)
?print(plots, split=c(1,3,2,4), more=T)#, newpage=isnewpage)
?print(plots, split=c(2,3,2,4), more=T)#, newpage=isnewpage)
?print(plots, split=c(1,4,2,4), more=T)#, newpage=isnewpage)
?print(plots, split=c(2,4,2,4), more=F)#, newpage=isnewpage)
? ??popViewport()
? ??pushViewport(viewport(x=0,
? ? ? ? ? ? ? ? ? ? ? y=0.95,
? ? ? ? ? ? ? ? ? ? ? width=1,
? ? ? ? ? ? ? ? ? ? ? height=0.05,
? ? ? ? ? ? ? ? ? ? ? just=c(0,0)))
? ? grid.text(label = i,
? ? ? ? ? ? ? just = c("centre","centre"),
? ? ? ? ? ? ? gp = gpar(fontsize = 10, font = 2))
? ? popViewport()
? ??# Updates isnewpage
?# isnewpage <- TRUE
}
--
*Sebastien Bihorel, PharmD, PhD*
PKPD Scientist
Cognigen Corp
Email: sebastien.bihorel at cognigencorp.com
<mailto:sebastien.bihorel at cognigencorp.com>
Phone: (716) 633-3463 ext. 323
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.