R: Set Base Plotting Regions from Grid Viewport

Set Base Plot Regions {gridBase} | R Documentation

## Set Base Plotting Regions from Grid Viewport

### Description

These functions can be used to align base plotting regions with the current grid viewport. This can be used to draw base plots within a grid viewport.

### Usage

    gridOMI()
    gridFIG()
    gridPLT()
    gridPAR()

### Details

For this to be useful, you will have to make liberal use of `par(new=TRUE)` to prevent base from moving to a new page.

With care, these can even be used to draw multiple base plots within a grid viewport (see the examples below), but in general, base plotting functions that draw multiple panels (e.g., `coplot`) should not be expected to work.

### Value

`gridOMI` returns a value that can be used to set the `par(omi)` parameter.

`gridFIG` returns a value that can be used to set the `par(fig)` parameter.

`gridPLT` returns a value that can be used to set the `par(plt)` parameter.

`gridPAR` returns a value that can be used to set some graphical parameters (currently, `lwd`, `lty`, and `col`).

### Warning

If you resize the device, all bets are off!

### Author(s)

Paul Murrell

### See Also

Grid, `viewport`

### Examples

    library(grid)
    opar <- par(no.readonly=TRUE)
    # gridFIG
    grid.newpage()
    pushViewport(viewport(width=0.5, height=0.5))
    grid.rect(gp=gpar(col="grey", lty="dashed"))
    par(fig=gridFIG())
    par(new=TRUE)
    plot(1:10)
    # multiple plots
    # NOTE the use of par(mfg)
    # gridOMI
    par(opar)
    grid.newpage()
    pushViewport(viewport(width=0.5, height=0.5))
    grid.rect(gp=gpar(col="grey", lty="dashed"))
    par(omi=gridOMI())
    par(mfrow=c(2, 2), mfg=c(1, 1), mar=c(3, 3, 1, 0))
    for (i in 1:4) {
      plot(i)
    }
    # gridPLT
    par(opar)
    grid.newpage()
    pushViewport(viewport(width=0.5, height=0.5))
    grid.rect(gp=gpar(col="grey", lwd=5))
    par(plt=gridPLT())
    par(new=TRUE)
    plot(1:10)
    # gridFIG with par(omi) set
    par(opar)
    grid.newpage()
    par(omi=rep(1, 4))
    pushViewport(viewport(width=0.5, height=0.5))
    grid.rect(gp=gpar(col="grey", lwd=5))
    par(fig=gridFIG())
    par(new=TRUE)
    plot(1:10)
    # gridPLT with par(omi) set
    par(opar)
    grid.newpage()
    par(omi=rep(1, 4))
    pushViewport(viewport(width=0.5, height=0.5))
    grid.rect(gp=gpar(col="grey", lwd=5))
    par(plt=gridPLT())
    par(new=TRUE)
    plot(1:10)
    # gridPAR
    par(opar)
    grid.newpage()
    pushViewport(viewport(width=0.5, height=0.5,
      gp=gpar(col="red", lwd=3, lty="dotted")))
    grid.rect(gp=gpar(col="grey", lwd=5))
    par(fig=gridFIG())
    par(gridPAR())
    par(new=TRUE)
    plot(1:10, type="b")

[Package gridBase version 0.4-7 Index]