polygon {graphics}  R Documentation 
polygon
draws the polygons whose vertices are
given in x
and y
.
polygon(x, y = NULL, density = NULL, angle = 45, border = NULL, col = NA, lty = NULL, xpd = NULL, ...)
x,y 
vectors containing the coordinates of the vertices of the polygon. 
density 
the density of shading lines, in lines per inch. The
default value of NULL means that no shading lines are drawn.
A zero value of density means no shading lines whereas
negative values (and NA ) suppress shading (and so allow
color filling). 
angle 
the slope of shading lines, given as an angle in degrees (counterclockwise). 
col 
the color for filling the polygon.
The default, NA , is to leave polygons unfilled. 
border 
the color to draw the border. The default, NULL ,
uses par("fg") . Use border = NA to omit borders.
For compatibility with S, border can also be logical, in
which case FALSE is equivalent to NA (borders omitted)
and TRUE is equivalent to NULL (use the foreground colour),

lty 
the line type to be used, as in par . 
xpd 
(where) should clipping take place? Defaults to
par("xpd") . 
... 
graphical parameters can be given as arguments to
polygon . 
The coordinates can be passed in a plotting structure
(a list with x
and y
components), a twocolumn matrix,
.... See xy.coords
.
It is assumed that the polygon is closed by joining the last point to the first point.
The coordinates can contain missing values. The behaviour is similar
to that of lines
, except
that instead of breaking a line into several lines, NA
values break the polygon into several complete polygons
(including closing the last point to the first point). See
the examples below.
When multiple polygons are produced,
the values of density
, angle
, col
, border
,
and lty
are recycled in the usual manner.
The present shading algorithm can produce incorrect results for selfintersecting polygons.
The code implementing polygon shading was donated by Kevin Buhr buhr@stat.wisc.edu.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
segments
for even more flexibility, lines
,
rect
, box
, abline
.
par
for how to specify colors.
x < c(1:9,8:1) y < c(1,2*(5:3),2,1,17,9,8,2:9) op < par(mfcol=c(3,1)) for(xpd in c(FALSE,TRUE,NA)) { plot(1:10, main=paste("xpd =", xpd)) ; box("figure", col = "pink", lwd=3) polygon(x,y, xpd=xpd, col = "orange", lty=2, lwd=2, border = "red") } par(op) n < 100 xx < c(0:n, n:0) yy < c(c(0,cumsum(rnorm(n))), rev(c(0,cumsum(rnorm(n))))) plot (xx, yy, type="n", xlab="Time", ylab="Distance") polygon(xx, yy, col="gray", border = "red") title("Distance Between Brownian Motions") # Multiple polygons from NA values # and recycling of col, border, and lty op < par(mfrow=c(2,1)) plot(c(1,9), 1:2, type="n") polygon(1:9, c(2,1,2,1,1,2,1,2,1), col=c("red", "blue"), border=c("green", "yellow"), lwd=3, lty=c("dashed", "solid")) plot(c(1,9), 1:2, type="n") polygon(1:9, c(2,1,2,1,NA,2,1,2,1), col=c("red", "blue"), border=c("green", "yellow"), lwd=3, lty=c("dashed", "solid")) par(op) # Lineshaded polygons plot(c(1,9), 1:2, type="n") polygon(1:9, c(2,1,2,1,NA,2,1,2,1), density=c(10, 20), angle=c(45, 45))