polygon               package:graphics               R Documentation

_P_o_l_y_g_o_n _D_r_a_w_i_n_g

_D_e_s_c_r_i_p_t_i_o_n:

     'polygon' draws the polygons whose vertices are given in 'x' and
     'y'.

_U_s_a_g_e:

     polygon(x, y = NULL, density = NULL, angle = 45,
             border = NULL, col = NA, lty = NULL, xpd = NULL, ...)

_A_r_g_u_m_e_n_t_s:

     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
          (counter-clockwise).

     col: the color for filling the polygon. The default, 'NA', is to
          leave polygons unfilled, unless 'density' is specified.  (For
          back-compatibiility, 'NULL' is equivalent to 'NA'.)

  border: the color to draw the border.  The default, 'NULL', means to
          use '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'.

_D_e_t_a_i_l_s:

     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 polygon 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 '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.

_B_u_g_s:

     The present shading algorithm can produce incorrect results for
     self-intersecting polygons.

_A_u_t_h_o_r(_s):

     The code implementing polygon shading was donated by Kevin Buhr
     buhr@stat.wisc.edu.

_R_e_f_e_r_e_n_c_e_s:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

_S_e_e _A_l_s_o:

     'segments' for even more flexibility, 'lines', 'rect', 'box',
     'abline'.

     'par' for how to specify colors.

_E_x_a_m_p_l_e_s:

     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)

     # Line-shaded 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))

