Skip to contents

Specify facets. tm_facets() is the core function, but recommended is to use tm_facets_wrap(), tm_facets_stack() or tm_facets_grid(). The former two specify facets for one grouping variable (so one faceting dimension). The difference is that wrap may place facets in multiple rows and columns whereas tm_facets_stack() stacks the facets either horizontally or vertically. tm_facets_grid() supports up to three faceting dimensions.


  by = NULL,
  rows = NULL,
  columns = NULL,
  pages = NULL,
  as.layers = FALSE,
  nrows = NA,
  ncols = NA,
  byrow = TRUE,
  orientation = NA,
  free.coords = NA,
  drop.units = TRUE,
  drop.empty.facets = TRUE,
  drop.NA.facets = FALSE,
  sync = TRUE,
  showNA = NA,
  textNA = "Mssing",
  scale.factor = 2,
  type = NA,
  along = NULL

tm_facets_grid(rows = NULL, columns = NULL, pages = NULL, ...)

tm_facets_wrap(by = "VARS__", nrows = NA, ncols = NA, byrow = TRUE, ...)

tm_facets_pagewise(by = "VARS__", nrows = 1, ncols = 1, byrow = TRUE, ...)

tm_facets_stack(by = "VARS__", orientation = NA, ...)

tm_facets_hstack(by = "VARS__", ...)

tm_facets_vstack(by = "VARS__", ...)




Group by variable (only for a facet wrap or facet stack)


Variable that specifies the rows (only for a facet grid)


Variable that specifies the columns (only for a facet grid)


Variable that specifies the pages (only for a facet grid)


show facets as layers?


Number of rows


Number of columns


Should facets be wrapped by row?


For facet stack: horizontal or vertical?


Logical. If the by argument is specified, should each map has its own coordinate ranges? By default TRUE, unless facets are shown in as different layers (as.layers = TRUE)


Logical. If the by argument is specified, should non-selected spatial units be dropped? If FALSE, they are plotted where mapped aesthetics are regarded as missing values. Not applicable for raster shapes. By default TRUE.


Logical. If the by argument is specified, should empty facets be dropped? Empty facets occur when the by-variable contains unused levels. When TRUE and two by-variables are specified, empty rows and columns are dropped.


Logical. If the by argument is specified, and all data values for specific facets are missing, should these facets be dropped? FALSE by default.


Logical. Should the navigation in view mode (zooming and panning) be synchronized? By default TRUE if the facets have the same bounding box. This is generally the case when rasters are plotted, or when free.coords is FALSE.


If the by argument is specified, should missing values of the by-variable be shown in a facet? If two by-variables are specified, should missing values be shown in an additional row and column? If NA, missing values only are shown if they exist. Similar to the useNA argument of table(), where TRUE, FALSE, and NA correspond to "always", "no", and "ifany" respectively.


Text used for facets of missing values.


Number that determines how the elements (e.g. font sizes, symbol sizes, line widths) of the small multiples are scaled in relation to the scaling factor of the shapes. The elements are scaled to the scale.factorth root of the scaling factor of the shapes. So, for scale.factor=1, they are scaled proportional to the scaling of the shapes. Since elements, especially text, are often too small to read, a higher value is recommended. By default, scale.factor=2.


"grid", "wrap" or "stack"


deprecated Please use tm_facets_page()


passed on to tm_facets()