Learn R Programming

⚠️There's a newer version (3.1.4) of this package.Take me there.

cartography

Create and integrate maps in your R workflow!

This package helps to design cartographic representations such as proportional symbols, choropleth, typology, flows or discontinuities maps. It also offers several features that improve the graphic presentation of maps, for instance, map palettes, layout elements (scale, north arrow, title...), labels or legends.

Cheat Sheet

The cheat sheet displays a quick overview of cartography's main features.

Vignette

The vignette contains commented scripts on how to build various types of maps with cartography:

Other Resources

Demo

The following script creates a map of symbols that are proportional to values of a first variable and colored to reflect the classification of a second variable.

library(sf)
library(cartography)
# path to the geopackage file embedded in cartography
path_to_file <- system.file("gpkg/mtq.gpkg", package="cartography")
# import to an sf object
mtq <- st_read(dsn = path_to_file, quiet = TRUE)

########## Draft Map
# Plot the municipalities
plot(st_geometry(mtq))
# Plot symbols with choropleth coloration (population & median income)
propSymbolsChoroLayer(x = mtq, var = "POP", var2 = "MED")
# Add a layout
title(main = "Population & Wealth in Martinique, 2015", 
      sub = "Sources: Insee and IGN - 2018")

########## Final Map
# Set figure margins
opar <- par(mar = c(0,0,1.2,0))
# Plot the municipalities
plot(st_geometry(mtq), col="darkseagreen3", border="darkseagreen4",  
     bg = "lightblue1", lwd = 0.5)
# Plot symbols with choropleth coloration
propSymbolsChoroLayer(x = mtq, var = "POP", inches = 0.4, border = "grey50",
                      lwd = 1, legend.var.pos = "topright", 
                      legend.var.title.txt = "Population",
                      var2 = "MED", method = "equal", nclass = 4, 
                      col = carto.pal(pal1 = "sand.pal", n1 = 4),
                      legend.var2.values.rnd = -2,  legend.var2.pos = "left", 
                      legend.var2.title.txt = "Median Income\n(in euros)") 
# Plot a layout
layoutLayer(title="Population & Wealth in Martinique, 2015", 
            author = "cartography 2.1.3", 
            sources = "Sources: Insee and IGN - 2018", 
            scale = 5, tabtitle = TRUE, frame = FALSE)
# Plot a north arrow
north(pos = "topleft")
# restore graphics parameters
par(opar)

Installation

  • Development version on GitHub
require(remotes)
install_github("riatelab/cartography")
  • Stable version on CRAN
install.packages("cartography")

Alternatives Packages

Community Guidelines

One can contribute to the package through pull requests and report issues or ask questions here.

Copy Link

Version

Install

install.packages('cartography')

Monthly Downloads

1,743

Version

2.4.2

License

GPL-3

Issues

Pull Requests

Stars

Forks

Last Published

September 2nd, 2020

Functions in cartography (2.4.2)

discLayer

Discontinuities Layer
getBreaks

Classification
getFigDim

Get Figure Dimensions
dotDensityLayer

Dot Density Layer
getTiles

Get Tiles from Open Map Servers
choroLayer

Choropleth Layer
getPngLayer

.png Layer
cartography

Cartography Package
countries.spdf

Countries in the European Area
coasts.spdf

Coastline of Europe
legendWaffle

Legend for Typology Maps
gradLinkLayer

Graduated Links Layer
gradLinkTypoLayer

Graduated and Colored Links Layer
ghostLayer

Plot a Ghost Layer
getGridData

Compute Data for a Grid Layer
propLinkLayer

Proportional Links Layer
propSymbolsChoroLayer

Proportional and Choropleth Symbols Layer
layoutLayer

Layout Layer
graticule.spdf

Graticule around Europe
north

North Arrow
barscale

Scale Bar
legendGradLines

Legend for Graduated Size Lines Maps
getLinkLayer

Create a Links Layer from a Data Frame of Links.
nuts1.df

Nuts1 Dataset
carto.pal

Build Cartographic Palettes
legendHatched

Legend for Hatched Maps
getPencilLayer

Pencil Layer
propSymbolsLayer

Proportional Symbols Layer
nuts1.spdf

Nuts1 Regions
getGridLayer

Build a Regular Grid Layer
frame.spdf

Frame around Europe
typoLayer

Typology Layer
waffleLayer

Waffle Layer
nuts3.df

Nuts3 Dataset
nuts3.spdf

Nuts3 Regions
legendBarsSymbols

Legend for Proportional Bars Maps
propSymbolsTypoLayer

Proportional Symbols Typo Layer
nuts0.df

Nuts0 Dataset
hatchedLayer

Hatched Layer
labelLayer

Label Layer
getBorders

Extract Polygons Borders
legendChoro

Legend for Choropleth Maps
twincities.df

Twin Cities Dataset
legendPropLines

Legend for Proportional Lines Maps
legendCirclesSymbols

Legend for Proportional Circles Maps
tilesLayer

Plot a Raster Object
legendPropTriangles

Legend for Double Proportional Triangles Maps
propTrianglesLayer

Double Proportional Triangle Layer
legendSquaresSymbols

Legend for Proportional Squares Maps
legendTypo

Legend for Typology Maps
nuts2.df

Nuts2 Dataset
nuts2.spdf

Nuts2 Regions
nuts0.spdf

Nuts0 Regions
wordcloudLayer

Wordcloud Layer
smoothLayer

Smooth Layer
world.spdf

World Background