gridBase (version 0.2-1)

Set Base Plot Regions: 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()

Arguments

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!

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.

See Also

Grid, viewport

Examples

Run this code
opar <- par(no.readonly=TRUE)
# gridFIG
grid.newpage()
push.viewport(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()
push.viewport(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()
push.viewport(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))
push.viewport(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))
push.viewport(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()
push.viewport(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")

Run the code above in your browser using DataCamp Workspace