Rev 10525 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{screen}\title{Creating and Controlling Multiple Screens on a Single Device}\usage{split.screen(figs, screen = <<see below>>, erase = TRUE)screen(n = <<see below>>, new = TRUE)erase.screen(n = <<see below>>)close.screen(n = <<see below>>, all.screens = TRUE)}\alias{screen}\alias{split.screen}\alias{erase.screen}\alias{close.screen}\arguments{\item{figs}{A two-element vector describing the number of rows and thenumber of columns in a screen matrix \emph{or} a matrix with 4 columns.If a matrix, then each row describes a screen with values for the left,right, bottom, and top of the screen (in that order) in NDC units.}\item{n}{A number indicating which screen to prepare for drawing(\code{screen}), erase (\code{erase.screen}), or close(\code{close.screen}).}\item{new}{A logical value indicating whether the screen should beerased as part of the preparation for drawing in the screen.}\item{all.screens}{A logical value indicating whether all of thescreens should be closed.}}\description{\code{split.screen} defines a number of regions within the currentdevice which can, to some extent, be treated as separate graphicsdevices. It is useful for generating multiple plots on a singledevice. Screens can themselves be split, allowing for quite complexarrangements of plots.\code{screen} is used to select which screen to draw in.\code{erase.screen} is used to clear a single screen.\code{close.screen} removes the specified screen definition(s).}\details{The first call to \code{split.screen} places \R into split-screenmode. The other split-screen functions only work within this mode.While in this mode, certain other commands should be avoided (see WARNINGSbelow). Split-screen mode is exited by the command\code{close.screen(all = TRUE)}}\value{\code{split.screen} returns a vector of screen numbers for thenewly-created screens. With no arguments, \code{split.screen} returnsa vector of valid screen numbers.\code{screen} invisibly returns the number of the selected screen.With no arguments, \code{screen} returns the number of the currentscreen.\code{close.screen} returns a vector of valid screen numbers.\code{screen}, \code{erase.screen}, and \code{close.screen} all return\code{FALSE} if \R is not in split-screen mode.}\section{Warning}{These functions are totally incompatible with theother mechanisms for arranging plots on a device: \code{par(mfrow)},\code{par(mfcol)}, and \code{layout()}.The functions are also incompatible with some plotting functions,such as \code{coplot}, which make use of these other mechanisms.The functions should not be used with multiple devices.}\seealso{\code{\link{par}}, \code{\link{layout}}, \code{\link{Devices}},\code{dev.*}}\examples{if (interactive()) {split.screen(c(2,1)) # split display into two screenssplit.screen(c(1,3), screen = 2) # now split the bottom half into 3screen(1) # prepare screen 1 for outputplot(10:1)screen(4) # prepare screen 4 for outputplot(10:1)close.screen(all = TRUE) # exit split-screen modesplit.screen(c(2,1)) # split display into two screenssplit.screen(c(1,2),2) # split bottom half in twoplot(1:10) # screen 3 is active, draw ploterase.screen() #forgot label, erase and redrawplot(1:10, ylab= "ylab 3")screen(1) # prepare screen 1 for outputplot(1:10)screen(4) # prepare screen 4 for outputplot(1:10, ylab="ylab 4")screen(1, FALSE) #return to screen 1, but do not clearplot(10:1, axes=F, lty=2, ylab="") # overlay second plotaxis(4) # add tic marks to right-hand axistitle("Plot 1")close.screen(all = TRUE) # exit split-screen mode}}\keyword{aplot}\keyword{dplot}\keyword{device}