plotMap: Plot a PolySet as a Map

plotMapR Documentation

Plot a PolySet as a Map

Description

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

Usage

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.

Value

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)
})

PBSmapping documentation built on Sept. 30, 2024, 9:21 a.m.