Set Base Plot Regions {gridBase} | R Documentation |
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.
gridOMI() gridFIG() gridPLT() gridPAR()
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.
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
).
If you resize the device, all bets are off!
Paul Murrell
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")