[R] grid(Base): How to avoid "Figure region too small and/or viewport too large" by specifying 'relative' units?

Paul Murrell paul at stat.auckland.ac.nz
Mon Oct 22 21:12:39 CEST 2012


Hi

Apologies for the slow response.

This part of the problem is I think just a bit of a misunderstanding. 
The diagram drawn by grid.show.viewport() is drawn within a *subset* of 
the current page (or viewport), to allow room for labelling, which is 
why your subsequent "real" viewports do not align with the diagram.
If you change your grid.show.layout() call to the following (which 
"removes" the normal margin used by grid.show.layout()) ...

grid.show.layout(gl, vp=viewport(width=1.25, height=1.25))

... then you should find your viewports line up with the diagram properly.

Paul

On 20/10/12 19:10, Marius Hofert wrote:
> In the meanwhile, I found a more minimal example which shows the problem (just
> change 'inch' to TRUE to see the difference):
>
>
> require(grid)
>
> inch <- FALSE # TRUE
>
> d <- if(inch) 5 else 1
> pspc <- d*c(0.3, 0.3) # width, height of panels
> spc <- d*c(0.05, 0.05) # width, height of space
> axlabspc <- d*c(0.1, 0.1) # width y label, height x label
> labspc <- d*c(0.05, 0.05) # width label boxes, height label boxes
>
> par. <- par(no.readonly=TRUE)
> gl <- grid.layout(5, 5, default.units=if(inch) "inches" else "npc",
>                    widths=c(axlabspc[1], pspc[1], spc[1], pspc[1], labspc[1]),
>                    heights=c(labspc[2], pspc[2], spc[2], pspc[2], axlabspc[2]))
> grid.show.layout(gl)
> pushViewport(viewport(layout=gl))
> for(i in 1:2) {
>      for(j in 1:2) {
>          pushViewport(viewport(layout.pos.row=2*i, layout.pos.col=2*j, name="foo"))
>          grid.rect()
>          upViewport()
>      }
> }
> par(par.)
>
> ______________________________________________
> 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.
>

-- 
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/




More information about the R-help mailing list