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
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")