plot.layered.Rd
\name{plot.layered}
\alias{plot.layered}
\title{
Layered Plot
}
\description{
Generates a layered plot.
The plot method for objects of class \code{"layered"}.
}
\usage{
\method{plot}{layered}(x, ..., which = NULL, plotargs = NULL,
add=FALSE, show.all=!add, main=NULL,
do.plot=TRUE)
}
\arguments{
\item{x}{
An object of class \code{"layered"}
created by the function \code{\link{layered}}.
}
\item{\dots}{
Arguments to be passed to the \code{plot} method
for \emph{every} layer.
}
\item{which}{
Subset index specifying which layers should be plotted.
}
\item{plotargs}{
Arguments to be passed to the \code{plot} methods
for individual layers. A list of lists of arguments of the
form \code{name=value}.
}
\item{add}{Logical value indicating whether to add the graphics
to an existing plot.
}
\item{show.all}{
Logical value indicating whether the \emph{first} layer should be
displayed in full (including the main title, bounding window,
coordinate axes, colour ribbon, and so on).
}
\item{main}{Main title for the plot}
\item{do.plot}{Logical value indicating whether to actually do the plotting.}
}
\details{
Layering is a simple mechanism for controlling
a high-level plot that is composed of
several successive plots, for example, a background and a foreground
plot. The layering mechanism makes it easier to plot,
to switch on or off the plotting of each individual layer,
to control the plotting arguments that are passed to each layer,
and to zoom in on a subregion.
The layers of data to be plotted should first be converted
into a single object of class \code{"layered"} using the
function \code{\link{layered}}. Then the layers can be plotted using
the method \code{plot.layered}.
To zoom in on a subregion,
apply the subset operator \code{\link{[.layered}} to \code{x}
before plotting.
Graphics parameters for each layer are determined by (in order of precedence)
\code{\dots}, \code{plotargs}, and \code{\link{layerplotargs}(x)}.
The graphics parameters may also include the special argument
\code{.plot} specifying (the name of) a function which will be used to
perform the plotting instead of the generic \code{plot}.
The argument \code{show.all} is recognised by many plot methods
in \pkg{spatstat}. It determines whether a plot is drawn
with all its additional components such as the main title, bounding window,
coordinate axes, colour ribbons and legends. The default is
\code{TRUE} for new plots and \code{FALSE} for added plots.
In \code{plot.layered}, the argument \code{show.all} applies only to the
\bold{first} layer. The subsequent layers are plotted
with \code{show.all=FALSE}.
To override this, that is, if you really want to draw all
the components of \bold{all} layers of \code{x},
insert the argument \code{show.all=TRUE} in each
entry of \code{plotargs} or \code{\link{layerplotargs}(x)}.
}
\value{
(Invisibly) a list containing the return values from
the plot commands for each layer. This list has
an attribute \code{"bbox"} giving a bounding box for the entire plot.
}
\author{\adrian
and \rolf
}
\seealso{
\code{\link{layered}},
\code{\link{layerplotargs}},
\code{\link{[.layered}},
\code{\link{plot}}.
}
\examples{
data(cells)
D <- distmap(cells)
L <- layered(D, cells)
plot(L)
plot(L, which = 2)
plot(L, plotargs=list(list(ribbon=FALSE), list(pch=3, cols="white")))
# plot a subregion
plot(L[, square(0.5)])
}
\keyword{spatial}
\keyword{hplot}