Trellis displays on Maps a.k.a. Choropleth maps
Produces Trellis displays of numeric (and eventually categorical) data on a map. This is largely meant as a demonstration, and users looking for serious map drawing capabilities should look elsewhere (see below).
mapplot(x, data, ...)"mapplot"(x, data, map, outer = TRUE, prepanel = prepanel.mapplot, panel = panel.mapplot, aspect = "iso", legend = NULL, breaks, cuts = 30, colramp = colorRampPalette(brewer.pal(n = 11, name = "Spectral")), colorkey = TRUE, ...)prepanel.mapplot(x, y, map, ...) panel.mapplot(x, y, map, breaks, colramp, exact = FALSE, lwd = 0.5, ...)
- x, y
mapplot, an object on which method dispatch is carried out. For the formula method, a formula of the form
y ~ x, with additional conditioning variables as desired. The extended form of conditioning using
y ~ x1 + x2etc. is also allowed. The formula might be interpreted as in a dot plot, except that
yis taken to be the names of geographical units in
Suitable subsets (packets) of
yare passed to the prepanel and panel functions.
- A data source where names in the formula are evaluated
- An object of class
maps), containing boundary information. The names of the geographical units must match the
yvariable in the formula.
- logical; how variables separated by
+in the formula are interpreted. It is not advisable to change the default.
- prepanel, panel
- the prepanel and panel functions
- aspect ratio
- breaks, cuts, colramp
- controls conversion of numeric
xvalues to a false color.
colrampshould be a function that produces colors (such as
cm.colors). If it is
NULL, colors are taken from
- the default
exact = FALSEallows the given
yvalues to match sub-regions of
map, i.e. region names with a qualifier following
"michigan:north", "michigan:south". These will both match a
- legend, colorkey
- controls legends; usually just a color key
giving the association between numeric values of
- line width
- Further arguments passed on to the underlying engine.
An object of class
This function is meant to demonstrate how maps can be incorporated in a Trellis display. Users seriously interested in geographical data should consider using software written by people who know what they are doing.
library(maps) library(mapproj) ## Note: Alaska, Hawaii and others are not included in county map; ## this generates warnings with both USCancerRates and ancestry. data(USCancerRates) suppressWarnings(print( mapplot(rownames(USCancerRates) ~ log(rate.male) + log(rate.female), data = USCancerRates, map = map("county", plot = FALSE, fill = TRUE, projection = "mercator")) )) suppressWarnings(print( mapplot(rownames(USCancerRates) ~ log(rate.male) + log(rate.female), data = USCancerRates, map = map("county", plot = FALSE, fill = TRUE, projection = "tetra"), scales = list(draw = FALSE)) )) data(ancestry) county.map <- map('county', plot = FALSE, fill = TRUE, projection = "azequalarea") ## set a sequential color palette as current theme, and use it opar <- trellis.par.get() trellis.par.set(custom.theme(region = brewer.pal(9, "Purples"), alpha.line = 0.5)) suppressWarnings(print( mapplot(county ~ log10(population), ancestry, map = county.map, colramp = NULL) )) trellis.par.set(opar) ## Not run: # # ## this may take a while (should get better area records) # # county.areas <- # area.map(county.map, regions = county.map$names, sqmi = FALSE) # # ancestry$density <- # with(ancestry, population / county.areas[as.character(county)]) # # mapplot(county ~ log(density), ancestry, # map = county.map, border = NA, # colramp = colorRampPalette(c("white", "black"))) # # ## End(Not run)