Plot a two-dimensional window of observation for a spatial point pattern
# S3 method for owin
plot(x, main, add=FALSE, ..., box, edge=0.04,
type=c("w","n"), show.all=!add,
hatch=FALSE,
hatchargs=list(),
invert=FALSE, do.plot=TRUE,
claim.title.space=FALSE, use.polypath=TRUE,
adj.main=0.5)
none.
The window to be plotted.
An object of class owin
,
or data which can be converted into
this format by as.owin()
.
text to be displayed as a title above the plot.
logical flag: if TRUE
, draw the window in
the current plot; if FALSE
, generate a new plot.
extra arguments controlling the appearance of the plot.
These arguments are passed to polygon
if x
is a
polygonal or rectangular window, or passed to
image.default
if x
is a binary mask.
Some arguments are passed to plot.default
.
See Details.
logical flag; if TRUE
, plot the enclosing rectangular box
nonnegative number; the plotting region will have coordinate limits
that are 1 + edge
times as large as the limits of the rectangular box
that encloses the pattern.
Type of plot: either "w"
or "n"
.
If type="w"
(the default), the window is plotted.
If type="n"
and add=TRUE
, a new plot is initialised
and the coordinate system is established, but nothing is drawn.
Logical value indicating whether to plot everything including the main title.
logical flag; if TRUE
, the interior of the window will
be shaded by texture, such as a grid of parallel lines.
List of arguments passed to add.texture
to control the texture shading when hatch=TRUE
.
logical flag; when the window is a binary pixel mask,
the mask colours will be inverted if invert=TRUE
.
Logical value indicating whether to actually perform the plot.
Logical value indicating whether extra space for the main title
should be allocated when declaring the plot dimensions.
Should be set to FALSE
under normal conditions.
Logical value indicating what graphics capabilities should be used
to draw a polygon filled with colour when the polygon has holes.
If TRUE
(the default), then the polygon will be filled using
polypath
, provided the graphics device
supports this function. If FALSE
, the polygon will be
decomposed into simple closed polygons, which will be colour filled
using polygon
.
Numeric value specifying the justification of the text in the main
title. Possible values are adj.main=0.5
(the default)
specifying that the main title will be centred, adj.main=0
specifying left-justified text, and adj.main=1
specifying
right-justified text.
The function polygon
can only handle
polygons without holes. To plot polygons with holes in a solid colour,
we have implemented two workarounds.
The first workaround uses
the relatively new function polypath
which
does have the capability to handle polygons with holes.
However, not all graphics devices support
polypath
.
The older devices xfig
and pictex
do not support polypath
.
On a Windows system, the default graphics device
windows
windows
supports polypath
.
On a Linux system, the default graphics device
X11(type="Xlib")
does not support
polypath
but X11(type="cairo")
does support it.
See X11
and the section on Cairo below.
The other workaround involves decomposing the polygonal window into pieces which do not have holes. This code is experimental but works in all our test cases. If this code fails, a warning will be issued, and the filled colours will not be plotted.
Linux systems support
the graphics device X11(type="cairo")
(see X11
)
provided the external library cairo is installed
on the computer. See www.cairographics.org
for instructions on obtaining and installing cairo. After having
installed cairo one needs to re-install R from source so
that it has cairo capabilites. To check whether your
current installation of R has cairo capabilities, type
(in R) capabilities()["cairo"]
.
The default type for X11
is controlled by
X11.options
.
You may find it convenient to
make cairo the default, e.g. via your .Rprofile
.
The magic incantation to put into .Rprofile
is
setHook(packageEvent("graphics", "onLoad"),
function(...) grDevices::X11.options(type="cairo"))
Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner rolfturner@posteo.net and Ege Rubak rubak@math.aau.dk.
This is the plot
method for the class owin
.
The action is to plot the boundary of the window on the current plot device,
using equal scales on the x
and y
axes.
If the window x
is of type "rectangle"
or "polygonal"
,
the boundary of the window is plotted as a polygon or series of polygons.
If x
is of type "mask"
the discrete raster approximation of the window is displayed
as a binary image (white inside the window, black outside).
Graphical parameters controlling the display (e.g. setting the
colours) may be passed directly via the ...
arguments,
or indirectly reset using
spatstat.options
.
If add=FALSE
(the default), the plot is initialised
by calling the base graphics function
plot.default
to create the plot area. By default, coordinate axes
and axis labels are not plotted. To plot coordinate axes,
use the argument axes=TRUE
;
to plot axis labels, use the argument ann=TRUE
and then specify the labels with xlab
and ylab
;
see the help file for plot.default
for
information on these arguments, and for additional
arguments controlling the appearance of the axes.
See the Examples also.
When x
is of type "rectangle"
or "polygonal"
, it
is plotted by the R function polygon
. To control the
appearance (colour, fill density, line density etc) of the polygon
plot, determine the required argument of polygon
and
pass it through ...
For example, to paint the interior of the
polygon in red, use the argument col="red"
. To draw the polygon
edges in green, use border="green"
. To suppress the drawing of
polygon edges, use border=NA
.
When x
is of type "mask"
, it is plotted by
image.default
. The appearance of the image plot
can be controlled by passing arguments to
image.default
through ...
. The default appearance can also be changed
by setting the parameter par.binary
of
spatstat.options
.
To zoom in (to view only a subset of the window at higher
magnification), use the graphical arguments
xlim
and ylim
to specify the desired rectangular field of
view. (The actual field of view may be larger, depending on the
graphics device).
owin.object
,
plot.ppp
,
polygon
,
image.default
,
spatstat.options
# rectangular window
plot(Window(nztrees))
abline(v=148, lty=2)
# polygonal window
w <- Window(demopat)
plot(w)
plot(w, col="red", border="green", lwd=2)
plot(w, hatch=TRUE, lwd=2)
# binary mask
we <- as.mask(w)
plot(we)
op <- spatstat.options(par.binary=list(col=grey(c(0.5,1))))
plot(we)
spatstat.options(op)
## axis annotation
plot(letterR, axes=TRUE, ann=TRUE, xlab="Easting", ylab="Northing")
plot(letterR, ann=TRUE, xlab="Declination", ylab="Right Ascension")
Run the code above in your browser using DataLab