tmap

library(tmap)

Constant visual values

tm_shape(World)+ 
  tm_polygons(
    fill = "#ffce00", # fill color
    col = "black",    # line color
    lwd = 0.5,        # line width
    lty = "dashed")   # line type
## [tip] Consider a suitable map projection, e.g. by adding `+ tm_crs("auto")`.
## This message is displayed once per session.

## Constant visual values

tm_shape(World)+ 
  tm_polygons(
    fill = "#98F5FF", # fill color
    col = "black",    # line color
    lwd = 0.5,        # line width
    lty = "dashed")   # line type

## Data-driven symbol

tm_shape(World)+ 
  tm_polygons(fill = "grey90") +   # constant fill color 
  tm_symbols(size = "pop_est",     # data variable, mapped to symbol size
             fill = "well_being",  # data variable, mapped to symbol fill color
             shape = "income_grp") # data variable, mapped to symbol shape

## Scales: numeric data (intervals)

tm_shape(World)+
tm_polygons(fill = "HPI")

## Scales: numeric data (intervals)

tm_shape(World)+ tm_polygons(
  fill = "HPI",
  fill.scale = tm_scale_intervals(
    style = "fisher",      # a method to specify the classes
    n = 7,                 # number of classes
    midpoint = 38,         # data value mapped to the middle palette color
    values = "pu_gn_div"   # color palette; 
                           # run cols4all::c4a_gui() to explore color palettes
  ))

## Scales: numeric data (intervals)

tm_shape(World) +
  tm_polygons(
    fill = "HPI",
    fill.scale = tm_scale_intervals(
      breaks = c(0, 10, 20, 30, 40, 50, 60),
      values = "pu_gn_div",
      labels = c("0–10", "10–20", "20–30", "30–40", "40–50", "50–60")
    )
  )

Scales: numeric data (intervals)

tm_shape(World) +
  tm_polygons(
    fill = "HPI",
    fill.scale = tm_scale_intervals(
      breaks = c(0, 10, 20, 30, 40, 50, 60),
      values = "pu_gn_div",
      labels = c("0–10", "10–20", "20–30", "30–40", "40–50", "50–60")
    )
  )

ttmp()
## ℹ tmap mode set to "view".
## ℹ switch back to "plot" mode with `tmap::ttm()`

Scales: numeric data (continuous)

tm_shape(World)+ 
  tm_polygons(
    fill = "HPI",
    fill.scale = tm_scale_continuous(
      limits = c(10, 60),
      values = "scico.hawaii"))
ttmp()
## ℹ tmap mode set to "plot".
## ℹ switch back to "view" mode with `tmap::ttm()`
## [plot mode] fit legend/component: Some legend items or map compoments do not
## fit well, and are therefore rescaled.
## ℹ Set the tmap option `component.autoscale = FALSE` to disable rescaling.

## Scales: categorical data

tm_shape(World) + 
  tm_polygons(
    fill = "economy",
    fill.scale = tm_scale_categorical())

ttmp()
## ℹ tmap mode set to "view".
## ℹ switch back to "plot" mode with `tmap::ttm()`

tmap basics: basemaps

tm_shape(metro) +
  tm_bubbles(size = "pop2020") +
  tm_basemap("OpenTopoMap")
ttmp()
## ℹ tmap mode set to "plot".
## ℹ switch back to "view" mode with `tmap::ttm()`

## tmap basics: charts

tm_shape(World) + 
  tm_polygons(
    fill = "economy",
    fill.chart = tm_chart_bar())

ttmp()
## ℹ tmap mode set to "view".
## ℹ switch back to "plot" mode with `tmap::ttm()`
## charts not implemented in view mode

Earth boundaries

tm_shape(World, crs = "+proj=eqearth") + 
  tm_polygons(
    fill = "HPI") +
  tm_layout(bg.color = "skyblue",
            earth_boundary = TRUE,
            frame = FALSE,
            space.color = "white")
## Linking to GEOS 3.13.1, GDAL 3.11.0, PROJ 9.6.0; sf_use_s2() is FALSE
ttmp()
## ℹ tmap mode set to "plot".
## ℹ switch back to "view" mode with `tmap::ttm()`

## Earth Map

tm_shape(World, 
         bbox = "FULL",
         crs = "+proj=ortho +lat_0=30 +lon_0=0") +
  tm_polygons() +
  tm_xlab("Longitudes") +
  tm_ylab("Latitudes")

ttmp()
## ℹ tmap mode set to "view".
## ℹ switch back to "plot" mode with `tmap::ttm()`