plotMap function

Plot a PolySet as a Map

Plot a PolySet as a Map

Plot a PolySet as a map, using the correct aspect ratio.

plotMap(polys, xlim = NULL, ylim = NULL, projection = TRUE, plt = c(0.11, 0.98, 0.12, 0.88), polyProps = NULL, border = NULL, lty = NULL, col = NULL, colHoles = NULL, density = NA, angle = NULL, bg = 0, axes = TRUE, tckLab = TRUE, tck = 0.014, tckMinor = 0.5 * tck, ...) .plotMaps(polys, xlim, ylim, projection, plt, polyProps, border, lty, col, colHoles, density, angle, bg, axes, tckLab, tck, tckMinor, isType, ...) .initPlotRegion(projection, xlim, ylim, plt)

Arguments

  • polys: data.frame -- PolySet to plot (required).

  • xlim: numeric -- range of X-coordinates.

  • ylim: numeric -- range of Y-coordinates.

  • projection: character|logical -- desired projection when PolySet

    lacks a projection attribute; one of "LL", "UTM", or a numeric value. If Boolean, specifies whether to check polys for a projection attribute.

  • plt: numeric -- four element vector (x1, x2, y1, y2) giving the coordinates of the plot region measured as a fraction of the figure region. Set to NULL if mai in par is desired.

  • polyProps: data.frame -- PolyData specifying which polygons to plot and their properties. par parameters passed as direct arguments supersede these data.

  • border: numeric|character -- vector describing edge colours (cycled by PID).

  • lty: numeric|character -- vector describing line types (cycled by PID).

  • col: numeric|character -- vector describing fill colours (cycled by PID).

  • colHoles: numeric|character -- vector describing hole colours (cycled by PID). The default, NULL, should be used in most cases as it renders holes transparent. colHoles is designed solely to eliminate retrace lines when images are converted to PDF format. If colHoles is specified, underlying information (i.e., previously plotted shapes) will be obliterated. If NA is specified, only outer polygons are drawn, consequently filling holes.

  • density: numeric -- vector describing shading line densities (lines per inch, cycled by PID).

  • angle: numeric -- vector describing shading line angles (degrees, cycled by PID).

  • bg: numeric|character -- background colour of the plot

  • axes: logical -- if TRUE, plot axes

  • tckLab: logical -- vector (length 1 or 2); if TRUE, label the major tick marks. If given a two-element vector, the first element describes the tick marks on the x-axis and the second element describes those on the y-axis.

  • tck: numeric -- vector (length 1 or 2) describing the length of tick marks as a fraction of the smallest dimension. If tckLab = TRUE, these tick marks will be automatically labelled. If given a two-element vector, the first element describes the tick marks on the x-axis and the second element describes those on the y-axis.

  • tckMinor: numeric -- vector (length 1 or 2) describing the length of tick marks as a fraction of the smallest dimension. These tick marks can not be automatically labelled. If given a two-element vector, the first element describes the tick marks on the x-axis and the second element describes those on the y-axis.

  • ...: dots -- additional par parameters, or the arguments main, sub, xlab, or ylab for the title function.

  • isType: character -- one of 'points', 'polygons', or 'lines'

Details

This function plots a PolySet , where each unique (PID, SID) describes a polygon. It connects each polygon's last vertex to its first. The function supports both borders (border, lty) and fills (col, density, angle). When supplied with the appropriate arguments, it can draw only borders or only fills . Unlike plotLines and plotPolys, it uses the aspect ratio supplied in the projection attribute of polys. If this attribute is missing, it attempts to use its projection argument. In the absence of both, it uses a default aspect ratio of 1:1. It clips polys to xlim and ylim before plotting.

The function creates a blank plot when polys equals NULL. In this case, the user must supply both xlim and ylim arguments. Alternatively, it accepts the argument type = "n" as part of ..., which is equivalent to specifying polys = NULL, but requires a PolySet . In both cases, the function's behaviour changes slightly. To resemble the plot function, it plots the border, labels, and other parts according to par parameters such as col.

For additional help on the arguments border, lty, col, density, and angle, please see polygon and par.

Returns

PolyData consisting of the PolyProps used to create the plot.

Note

To satisfy the aspect ratio, this plotting routine resizes the plot region. Consequently, par parameters such as plt, mai, and mar will change. When the function terminates, these changes persist to allow for additions to the plot.

Auxiliary dot function '.initPlotRegion' initialises the plot region, accounting for the aspect ratio.

Author(s)

Nicholas M. Boers, Software Engineer, Jobber, Edmonton AB

Maintainer: Rowan Haigh, Program Head -- Offshore Rockfish

Pacific Biological Station (PBS), Fisheries & Oceans Canada (DFO), Nanaimo BC

locus opus: Remote office, Vancouver BC

Last modified Rd: 2024-09-03

See Also

In package PBSmapping:

addLabels, addPolys, addStipples, clipPolys, closePolys, fixBound, fixPOS, locatePolys, plotLines, plotPoints, thinPolys, thickenPolys.

Examples

local(envir=.PBSmapEnv,expr={ oldpar = par(no.readonly=TRUE) #--- create a PolySet to plot polys <- data.frame(PID=rep(1,4),POS=1:4,X=c(0,1,1,0),Y=c(0,0,1,1)) #--- plot the PolySet plotMap(polys,xlim=c(-.5,1.5),ylim=c(-.5,1.5),density=0,projection=1) par(oldpar) })