Learn R Programming

tmap (version 1.4-1)

tm_fill: Draw polygons

Description

Creates a tmap-element that draws the polygons. tm_fill fills the polygons. Either a fixed color is used, or a color palette is mapped to a data variable. tm_borders draws the borders of the polygons. tm_polygons fills the polygons and draws the polygon borders.

Usage

tm_fill(col = NA, alpha = NA, palette = NULL, convert2density = FALSE, area = NULL, n = 5, style = ifelse(is.null(breaks), "pretty", "fixed"), breaks = NULL, labels = NULL, auto.palette.mapping = TRUE, contrast = NA, max.categories = 12, colorNA = NA, textNA = "Missing", showNA = NA, thres.poly = 0, title = NA, legend.show = TRUE, legend.format = list(), legend.is.portrait = TRUE, legend.hist = FALSE, legend.hist.title = NA, legend.z = NA, legend.hist.z = NA, id = NA, ...)
tm_borders(col = NA, lwd = 1, lty = "solid", alpha = NA)
tm_polygons(col = NA, alpha = NA, border.col = NA, border.alpha = NA, ...)

Arguments

col
For tm_fill, it is one of
  • a single color value
  • the name of a data variable that is contained in shp. Either the data variable contains color values, or values (numeric or categorical) that will be depicted by a color palette (see palette. In the latter case, a choropleth is drawn. #'
  • "MAP_COLORING". In this case polygons will be colored such that adjacent polygons do not get the same color. See the underlying function map_coloring for details.

For tm_borders, it is a single color value that specifies the border line color. If multiple values are specified, small multiples are drawn (see details).

alpha
transparency number between 0 (totally transparent) and 1 (not transparent). By default, the alpha value of the col is used (normally 1).
palette
a palette name or a vector of colors. See RColorBrewer::display.brewer.all() for the named palette. Use a "-" as prefix to reverse the palette. The default palette is taken from tm_layout's argument aes.palette.
convert2density
boolean that determines whether col is converted to a density variable. Should be TRUE when col consists of absolute numbers. The area size is either approximated from the shape object, or given by the argument area.
area
Name of the data variable that contains the area sizes in squared kilometer.
n
preferred number of classes (in case col is a numeric variable).
style
method to process the color scale when col is a numeric variable. Discrete options are "cat", "fixed", "sd", "equal", "pretty", "quantile", "kmeans", "hclust", "bclust", "fisher", and "jenks". A numeric variable is processed as a categorial variable when using "cat", i.e. each unique value will correspond to a distinct category. For the other discrete options, see the details in classIntervals. Continuous options are "cont" and "order". The former maps the values of col to a smooth gradient, whereas the latter maps the order of values of col to a smooth gradient. They are the continuous variants of respectively the discrete methods "equal" and quantile".
breaks
in case style=="fixed", breaks should be specified.
labels
labels of the classes.
auto.palette.mapping
When diverging colour palettes are used (i.e. "RdBu") this method automatically maps colors to values such that the middle colors (mostly white or yellow) are assigned to values of 0, and the two sides of the color palette are assigned to negative respectively positive values. When categorical color palettes are used, this method stretches the palette is there are more levels than colors.
contrast
vector of two numbers that determine the range that is used for sequential and diverging palettes (applicable when auto.palette.mapping=TRUE). Both numbers should be between 0 and 1. The first number determines where the palette begins, and the second number where it ends. For sequential palettes, 0 means the brightest color, and 1 the darkest color. For diverging palettes, 0 means the middle color, and 1 both extremes. If only one number is provided, this number is interpreted as the endpoint (with 0 taken as the start).
max.categories
in case col is the name of a categorical variable, this value determines how many categories (levels) it can have maximally. If the number of levels is higher than max.categories and auto.palette.mapping is FALSE, then levels are combined.
colorNA
color used for missing values. Use NULL for transparency.
textNA
text used for missing values.
showNA
logical that determines whether missing values are named in the legend. By default (NA), this depends on the presence of missing values.
thres.poly
number that specifies the threshold at which polygons are taken into account. The number itself corresponds to the proportion of the area sizes of the polygons to the total polygon size. By default, all polygons are drawn. To ignore polygons that are not visible in a normal plot, a value like 1e-05 is recommended.
title
title of the legend element
legend.show
logical that determines whether the legend is shown
legend.format
list of formatting options for the legend numbers. Only applicable if labels is undefined. Parameters are:
scientific
Should the labels be formatted scientically? If so, square brackets are used, and the format of the numbers is "g". Otherwise, format="f", and text.separator, text.less.than, and text.or.more are used. Also, the numbers are automatically rounded to millions or billions if applicable.

format
By default, "f", i.e. the standard notation xxx.xxx, is used. If scientific=TRUE then "g", which means that numbers are formatted scientically, i.e. n.dddE+nn if needed to save space.

digits
Number of digits after the decimal point if format="f", and the number of significant digits otherwise.

text.separator
Character string to use to separate numbers in the legend (default: "to").

text.less.than
Character string to use to translate "Less than" (which is the default).

text.or.more
Character string to use to translate "or more" (which is the default).

...
Other arguments passed on to formatC

legend.is.portrait
logical that determines whether the legend is in portrait mode (TRUE) or landscape (FALSE)
legend.hist
logical that determines whether a histogram is shown
legend.hist.title
title for the histogram. By default, one title is used for both the histogram and the normal legend.
legend.z
index value that determines the position of the legend element with respect to other legend elements. The legend elements are stacked according to their z values. The legend element with the lowest z value is placed on top.
legend.hist.z
index value that determines the position of the histogram legend element
id
name of the data variable that specifies the indices of the polygons. Only used for "view" mode (see tmap_mode).
...
for tm_polygons, these arguments passed to either tm_fill or tm_borders. For tm_fill, these arguments are passed on to map_coloring.
lwd
border line width (see par)
lty
border line type (see par)
border.col
border line color
border.alpha
transparency number between 0 (totally transparent) and 1 (not transparent). By default, the alpha value of the col is used (normally 1).

Value

tmap-element

Details

Small multiples can be drawn in two ways: either by specifying the by argument in tm_facets, or by defining multiple variables in the aesthetic arguments. The aesthetic argument of tm_fill (and tm_polygons) is col. In the latter case, the arguments, except for thres.poly, and the ones starting with legend., can be specified for small multiples as follows. If the argument normally only takes a single value, such as n, then a vector of those values can be specified, one for each small multiple. If the argument normally can take a vector, such as palette, then a list of those vectors (or values) can be specified, one for each small multiple.

See Also

vignette("tmap-nutshell")

Examples

Run this code
data(World, Europe, NLD_muni, NLD_prov)

# Constant fill
tm_shape(World) + tm_fill("darkolivegreen3") + tm_format_World(title="A green World")

# Borders only
tm_shape(Europe) + tm_borders()

# Data variable containing colours values
Europe$isNLD <- ifelse(Europe$name=="Netherlands", "darkorange", "darkolivegreen3")
tm_shape(Europe) +
    tm_fill("isNLD") +
tm_layout("Find the Netherlands!")

# Numeric data variable
tm_shape(NLD_muni) +
    tm_fill(col="population", convert2density=TRUE, 
        style="kmeans", title = expression("Population (per " * km^2 * ")"), 
        legend.hist=TRUE, id="name") +
    tm_borders("grey25", alpha=.5) + 
tm_shape(NLD_prov) +
    tm_borders("grey40", lwd=2) +
tm_format_NLD_wide(bg.color="white", frame = FALSE, legend.hist.bg.color="grey90")

tm_shape(World) +
    tm_polygons("HPI", palette="RdYlGn", style="cont", n=8, auto.palette.mapping=FALSE, 
    			title="Happy Planet Index", id="name") +
    tm_text("iso_a3", size="AREA", scale=1.5) +
tm_format_World() + 
tm_style_grey()

# Categorical data variable
pal <- RColorBrewer::brewer.pal(10, "Set3")[c(10, 8, 4, 5)]
tm_shape(Europe) +
	tm_polygons("EU_Schengen", palette=pal, title = "European Countries", showNA=FALSE) +
tm_format_Europe()

tm_shape(World) +
    tm_polygons("economy", title="Economy", id="name") +
    tm_text("iso_a3", size="AREA", scale=1.5) +
tm_format_World()

# Map coloring algorithm
## Not run: 
# tm_shape(NLD_prov) +
#     tm_fill("name", legend.show = FALSE) +
# tm_shape(NLD_muni) +
#     tm_polygons("MAP_COLORS", palette="Greys", alpha = .25) +
# tm_shape(NLD_prov) +
#     tm_borders(lwd=2) +
#     tm_text("name", shadow=TRUE) +
# tm_format_NLD(title="Dutch provinces and\nmunicipalities", bg.color="white")
# ## End(Not run)

# TIP: check out these examples in view mode, enabled with tmap_mode("view")

Run the code above in your browser using DataLab