Compute the Rectangular Statistical Cartogram

Provides an interface and a C++ implementation of the RecMap MP2 construction heuristic (Panse C. (2018) ). This algorithm draws maps according to a given statistical value (e.g., election results, population or epidemiological data). The basic idea of the RecMap algorithm is that each map region (e.g., different countries) is represented by a rectangle. The area of each rectangle represents the statistical value given as input (maintain zero cartographic error). Documentation about the usage of the recmap algorithm is provided by a vignette included in this package.

CRAN_Status_Badge Research software impact Build Status

This package implementats of the RecMap construction algorithm (MP2).


from CRAN

recmap requires R 3.3 or later.

Released and tested versions of recmap are available via CRAN, and can be installed using the following code


from github

the code below installs the latest development version

install_github('cpanse/recmap', build_vignettes = TRUE, quiet = FALSE)

Use the docker public | automated build recmap image

this image contains the latest build.

docker pull cpanse/recmap \
&& docker run -d -p 8791:8787 cpanse/recmap

connect to http://yourdockerhost:8791 using a web browser

  • username: rstudio
  • password: rstudio

or stand alone

docker run -it -p 8787:8787 cpanse/recmap R -e "library(shiny); recmap_shiny <- system.file('shiny-examples', package = 'recmap'); shiny::runApp(recmap_shiny, display.mode = 'normal', port=8787, host='')"

connect to the docker host:8787


The package ships with a package vignette (browseVignettes('recmap')) and a reference manual (just type ?recmap on the R shell). Both documents are also available on the package's CRAN page. A white paper containing more technical information and examples is available through jss.v086.c01.


interactive shiny application

# Requires to install suggested  packages
pkgs <- c('colorspace', 'maps', 'noncensus', 'shiny')
pkgs <- pkgs[(!pkgs %in% unique(installed.packages()[,'Package']))]
if(length(pkgs) > 0){install.packages(pkgs)}
recmap_shiny <- system.file('shiny-examples', package = 'recmap')
shiny::runApp(recmap_shiny, display.mode = 'normal')

if you want to run the recmap shiny demonstration as stand-alone application using Linux and Apple systems use the Terminal application add the following code to your alias file, e.g., $HOME/.bashrc

alias recmapShiny="R -e \"library(shiny); \
  recmap_shiny <- system.file('shiny-examples', package = 'recmap'); \
  shiny::runApp(recmap_shiny, display.mode = 'normal', launch.browser=TRUE)\""

Related approaches


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.0.11 by Christian Panse, 4 months ago

Report a bug at

Browse source code at

Authors: Christian Panse [aut, cre]

Documentation:   PDF Manual  

Task views: Analysis of Spatial Data

GPL-3 license

Depends on GA, Rcpp, sp

Suggests doParallel, knitr, rmarkdown, shiny, testthat, tufte

Linking to Rcpp

System requirements: C++11

See at CRAN