Mapview
Mapview is an excellent R package for interactive maps. Although the packages have a lot in common, the focus is different:
- tmap focusses on thematic mapping with a syntax that is based on the grammar of graphics and is therefore popular for education purposes;
- mapview focuses on fast exploration of spatial data and has more interactive features.
Modes / platforms
- tmap offers two modes: “plot” and “view” (but is extendable, see https://github.com/r-tmap/tmap.deckgl).
- mapview supports three modes, which they call platforms: “leaflet”, “leafgl”, and “mapdeck”.
tmap “view” (with tm_view(use_WebGL = FALSE)) is similar
to mapview “leaflet” tmap “view” (with
tm_view(use_WebGL = TRUE)) is similar to mapview
“leafgl”
tmap does not offer a mode using Mapbox yet.
Default maps
This is the default output of mapview:
This is the default output of tmap:
tmap_mode("view")
#> ℹ tmap modes "plot" - "view"
#> ℹ toggle with `tmap::ttm()`
qtm(World) # qtm stands for 'quick thematic map'
#> <==================== lty ===============>
#> [1] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [10] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [19] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [28] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [37] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [46] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [55] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [64] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [73] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [82] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [91] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [100] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [109] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [118] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [127] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [136] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [145] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [154] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [163] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [172] "solid" "solid" "solid" "solid" "solid" "solid"
#> <==================== lwd ===============>
#> [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [75] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [112] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [149] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> </============================================>Choropleth
mapview(World, zcol = "HPI")
tm_shape(World) +
tm_polygons(fill = "HPI")
#> <==================== lty ===============>
#> [1] "solid"
#> <==================== lwd ===============>
#> [1] 1
#> </============================================>
#> <==================== lty ===============>
#> [1] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [10] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [19] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [28] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [37] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [46] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [55] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [64] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [73] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [82] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [91] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [100] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [109] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [118] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [127] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [136] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [145] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [154] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [163] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [172] "solid" "solid" "solid" "solid" "solid" "solid"
#> <==================== lwd ===============>
#> [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [75] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [112] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [149] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> </============================================>Mimicking mapview layout
We can use tmap to match the style of
mapview:
tm_shape(World) +
tm_polygons(
fill = "HPI",
fill_alpha = 0.6,
col_alpha = 0.9,
fill.legend = tm_legend(
title = "World - HPI",
position = c("right", "top"),
fill_alpha = 1),
fill.scale = tm_scale_continuous(values = "viridis", n = 7, value.na = "#BEBEBE")
) +
tm_basemap(c("CartoDB.Positron", "CartoDB.DarkMatter",
"OpenStreetMap", "Esri.WorldImagery", "OpenTopoMap"))
#> <==================== lty ===============>
#> [1] "solid"
#> <==================== lwd ===============>
#> [1] 1
#> </============================================>
#> <==================== lty ===============>
#> [1] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [10] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [19] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [28] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [37] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [46] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [55] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [64] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [73] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [82] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [91] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [100] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [109] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [118] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [127] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [136] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [145] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [154] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [163] "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid" "solid"
#> [172] "solid" "solid" "solid" "solid" "solid" "solid"
#> <==================== lwd ===============>
#> [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [75] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [112] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [149] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> </============================================>
#> Warning: tm_scale_intervals `label.style = "continuous"` implementation in view mode
#> work in progress