[R] Problem with viewports, print.trellis and more/newpage
Deepayan Sarkar
deepayan.sarkar at gmail.com
Thu May 14 23:15:15 CEST 2009
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.
>
More information about the R-help
mailing list