dotsInPolys             package:maptools             R Documentation

_P_u_t _d_o_t_s _i_n _p_o_l_y_g_o_n_s

_D_e_s_c_r_i_p_t_i_o_n:

     Make a list of point coordinate matrices for a dot density map

_U_s_a_g_e:

     dotsInPolys(pl, x, f = csr)

_A_r_g_u_m_e_n_t_s:

      pl: list of polygons of class 'polylist'

       x: integer vector of counts of same length as pl for dots

       f: function to place points in polygons, either 'csr' -
          completely spatially random or 'gridpts' gridded points from
          the splancs package

_D_e_t_a_i_l_s:

     With f=csr (completely spatially random), the dots are placed in
     the polygon at random, f=gridpts - in a grid pattern (number of
     dots not guaranteed to be the same as the count). When the polygon
     is made up of more than one part, the dots will be placed in
     proportion to the relative areas of the clockwise rings
     (anticlockwise are taken as holes). No correction is made for
     holes in the placing of the dots.

_V_a_l_u_e:

     The function returns a list of matrices of point coordinates, one
     matrix for each member of pl. If x[i] is zero, the list element is
     NULL, and can be tested when plotting - see the examples.

_N_o_t_e:

     Waller and Gotway (2004) Applied Spatial Statistics for Public
     Health Data (Wiley, Hoboken, NJ) explicitly warn that care is
     needed in plotting and interpreting dot density maps (pp. 81-83)

_A_u_t_h_o_r(_s):

     Roger Bivand Roger.Bivand@nhh.no

_S_e_e _A_l_s_o:

     'csr', 'gridpts'

_E_x_a_m_p_l_e_s:

     x <- read.shape(system.file("shapes/sids.shp", package="maptools")[1])
     ncpolys <- Map2poly(x)
     try1 <- dotsInPolys(ncpolys, as.integer(x$att.data$SID74))
     plot(ncpolys)
     xx <- lapply(try1, function(x) {if (!is.null(x)) points(x, pch=18, col="red")})
     try2 <- dotsInPolys(ncpolys, as.integer(x$att.data$SID74), f=gridpts)
     plot(ncpolys)
     xx <- lapply(try2, function(x) {if (!is.null(x)) points(x, pch=18, col="red")})

