polypath
Path Drawing
path
draws a path whose vertices are
given in x
and y
.
- Keywords
- aplot
Usage
polypath(x, y = NULL,
border = NULL, col = NA, lty = par("lty"),
rule = "winding", ...)
Arguments
- x, y
- vectors containing the coordinates of the vertices of the path.
- col
- the color for filling the path. The default,
NA
, is to leave paths unfilled, unlessdensity
is specified. (For back-compatibility,NULL
is equivalent toNA
.) Ifdensity
is specified with a positive value this gives the color of the shading lines. - border
- the color to draw the border. The default,
NULL
, means to usepar("fg")
. Useborder = NA
to omit borders.For compatibility with S,
border
can also be logical, in which caseFALSE
is equivalent toNA
(borders omitted) andTRUE
is equivalent toNULL
(use the foreground colour), - lty
- the line type to be used, as in
par
. - rule
- character value specifying the path fill mode: either
"winding"
or"evenodd"
. - ...
- graphical parameters such as
xpd
,lend
,ljoin
andlmitre
can be given as arguments.
Details
The coordinates can be passed in a plotting structure
(a list with x
and y
components), a two-column matrix,
.... See xy.coords
.
It is assumed that the path is to be closed by joining the last point to the first point.
The coordinates can contain missing values. The behaviour is similar
to that of polygon
, except that instead of breaking a
polygon into several polygons, NA
values break the path into
several sub-paths (including closing the last point to the first point
in each sub-path). See the examples below.
The distinction between a path and a polygon is that the former can contain holes, as interpreted by the fill rule; these fill a region if the path border encircles it an odd or non-zero number of times, respectively.
Hatched shading (as implemented for polygon()
) is not
(currently) supported.
Not all graphics devices support this function: for example
xfig
and pictex
do not.
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Murrell, P. (2005) R Graphics. Chapman & Hall/CRC Press.
See Also
segments
for even more flexibility, lines
,
rect
, box
, polygon
.
par
for how to specify colors.
Examples
library(graphics)
plotPath <- function(x, y, col = "grey", rule = "winding") {
plot.new()
plot.window(range(x, na.rm = TRUE), range(y, na.rm = TRUE))
polypath(x, y, col = col, rule = rule)
if (!is.na(col))
mtext(paste("Rule:", rule), side = 1, line = 0)
}
plotRules <- function(x, y, title) {
plotPath(x, y)
plotPath(x, y, rule = "evenodd")
mtext(title, side = 3, line = 0)
plotPath(x, y, col = NA)
}
op <- par(mfrow = c(5, 3), mar = c(2, 1, 1, 1))
plotRules(c(.1, .1, .9, .9, NA, .2, .2, .8, .8),
c(.1, .9, .9, .1, NA, .2, .8, .8, .2),
"Nested rectangles, both clockwise")
plotRules(c(.1, .1, .9, .9, NA, .2, .8, .8, .2),
c(.1, .9, .9, .1, NA, .2, .2, .8, .8),
"Nested rectangles, outer clockwise, inner anti-clockwise")
plotRules(c(.1, .1, .4, .4, NA, .6, .9, .9, .6),
c(.1, .4, .4, .1, NA, .6, .6, .9, .9),
"Disjoint rectangles")
plotRules(c(.1, .1, .6, .6, NA, .4, .4, .9, .9),
c(.1, .6, .6, .1, NA, .4, .9, .9, .4),
"Overlapping rectangles, both clockwise")
plotRules(c(.1, .1, .6, .6, NA, .4, .9, .9, .4),
c(.1, .6, .6, .1, NA, .4, .4, .9, .9),
"Overlapping rectangles, one clockwise, other anti-clockwise")
par(op)