Title: | Create Cartograms with R |
---|---|
Description: | Construct continuous and non-contiguous area cartograms. |
Authors: | Sebastian Jeworutzki [aut, cre] , Timothee Giraud [ctb], Nicolas Lambert [ctb], Roger Bivand [cph], Edzer Pebesma [cph], Jakub Nowosad [ctb] |
Maintainer: | Sebastian Jeworutzki <[email protected]> |
License: | GPL-3 |
Version: | 0.3.0 |
Built: | 2024-11-06 03:42:18 UTC |
Source: | https://github.com/sjewo/cartogram |
Construct a continuous area cartogram by a rubber sheet distortion algorithm (Dougenik et al. 1985)
cartogram_cont( x, weight, itermax = 15, maxSizeError = 1.0001, prepare = "adjust", threshold = 0.05, verbose = FALSE ) ## S3 method for class 'SpatialPolygonsDataFrame' cartogram_cont( x, weight, itermax = 15, maxSizeError = 1.0001, prepare = "adjust", threshold = 0.05, verbose = FALSE ) ## S3 method for class 'sf' cartogram_cont( x, weight, itermax = 15, maxSizeError = 1.0001, prepare = "adjust", threshold = 0.05, verbose = FALSE )
cartogram_cont( x, weight, itermax = 15, maxSizeError = 1.0001, prepare = "adjust", threshold = 0.05, verbose = FALSE ) ## S3 method for class 'SpatialPolygonsDataFrame' cartogram_cont( x, weight, itermax = 15, maxSizeError = 1.0001, prepare = "adjust", threshold = 0.05, verbose = FALSE ) ## S3 method for class 'sf' cartogram_cont( x, weight, itermax = 15, maxSizeError = 1.0001, prepare = "adjust", threshold = 0.05, verbose = FALSE )
x |
a polygon or multiplogyon sf object |
weight |
Name of the weighting variable in x |
itermax |
Maximum iterations for the cartogram transformation, if maxSizeError ist not reached |
maxSizeError |
Stop if meanSizeError is smaller than maxSizeError |
prepare |
Weighting values are adjusted to reach convergence much earlier. Possible methods are "adjust", adjust values to restrict the mass vector to the quantiles defined by threshold and 1-threshold (default), "remove", remove features with values lower than quantile at threshold, "none", don't adjust weighting values |
threshold |
Define threshold for data preparation |
verbose |
print meanSizeError on each iteration |
An object of the same class as x
Dougenik, J. A., Chrisman, N. R., & Niemeyer, D. R. (1985). An Algorithm To Construct Continuous Area Cartograms. In The Professional Geographer, 37(1), 75-81.
library(sf) library(cartogram) nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) # transform to NAD83 / UTM zone 16N nc_utm <- st_transform(nc, 26916) # Create cartogram nc_utm_carto <- cartogram_cont(nc_utm, weight = "BIR74", itermax = 5) # Plot par(mfrow=c(2,1)) plot(nc[,"BIR74"], main="original", key.pos = NULL, reset = FALSE) plot(nc_utm_carto[,"BIR74"], main="distorted", key.pos = NULL, reset = FALSE)
library(sf) library(cartogram) nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) # transform to NAD83 / UTM zone 16N nc_utm <- st_transform(nc, 26916) # Create cartogram nc_utm_carto <- cartogram_cont(nc_utm, weight = "BIR74", itermax = 5) # Plot par(mfrow=c(2,1)) plot(nc[,"BIR74"], main="original", key.pos = NULL, reset = FALSE) plot(nc_utm_carto[,"BIR74"], main="distorted", key.pos = NULL, reset = FALSE)
Construct a cartogram which represents each geographic region as non-overlapping circles (Dorling 1996).
cartogram_dorling(x, weight, k = 5, m_weight = 1, itermax = 1000) ## S3 method for class 'sf' cartogram_dorling(x, weight, k = 5, m_weight = 1, itermax = 1000) ## S3 method for class 'SpatialPolygonsDataFrame' cartogram_dorling(x, weight, k = 5, m_weight = 1, itermax = 1000)
cartogram_dorling(x, weight, k = 5, m_weight = 1, itermax = 1000) ## S3 method for class 'sf' cartogram_dorling(x, weight, k = 5, m_weight = 1, itermax = 1000) ## S3 method for class 'SpatialPolygonsDataFrame' cartogram_dorling(x, weight, k = 5, m_weight = 1, itermax = 1000)
x |
a polygon or multiplogyon sf object |
weight |
Name of the weighting variable in x |
k |
Share of the bounding box of x filled by the larger circle |
m_weight |
Circles' movements weights. An optional vector of numeric weights (0 to 1 inclusive) to apply to the distance each circle moves during pair-repulsion. A weight of 0 prevents any movement. A weight of 1 gives the default movement distance. A single value can be supplied for uniform weights. A vector with length less than the number of circles will be silently extended by repeating the final value. Any values outside the range [0, 1] will be clamped to 0 or 1. |
itermax |
Maximum iterations for the cartogram transformation. |
Non overlaping proportional circles of the same class as x.
Dorling, D. (1996). Area Cartograms: Their Use and Creation. In Concepts and Techniques in Modern Geography (CATMOG), 59.
library(sf) library(cartogram) nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) # transform to NAD83 / UTM zone 16N nc_utm <- st_transform(nc, 26916) # Create cartogram nc_utm_carto <- cartogram_dorling(nc_utm, weight = "BIR74") # Plot par(mfrow=c(2,1)) plot(nc[,"BIR74"], main="original", key.pos = NULL, reset = FALSE) plot(nc_utm_carto[,"BIR74"], main="distorted", key.pos = NULL, reset = FALSE)
library(sf) library(cartogram) nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) # transform to NAD83 / UTM zone 16N nc_utm <- st_transform(nc, 26916) # Create cartogram nc_utm_carto <- cartogram_dorling(nc_utm, weight = "BIR74") # Plot par(mfrow=c(2,1)) plot(nc[,"BIR74"], main="original", key.pos = NULL, reset = FALSE) plot(nc_utm_carto[,"BIR74"], main="distorted", key.pos = NULL, reset = FALSE)
Construct a non-contiguous area cartogram (Olson 1976).
cartogram_ncont(x, weight, k = 1, inplace = TRUE) ## S3 method for class 'SpatialPolygonsDataFrame' cartogram_ncont(x, weight, k = 1, inplace = TRUE) ## S3 method for class 'sf' cartogram_ncont(x, weight, k = 1, inplace = TRUE)
cartogram_ncont(x, weight, k = 1, inplace = TRUE) ## S3 method for class 'SpatialPolygonsDataFrame' cartogram_ncont(x, weight, k = 1, inplace = TRUE) ## S3 method for class 'sf' cartogram_ncont(x, weight, k = 1, inplace = TRUE)
x |
a polygon or multiplogyon sf object |
weight |
Name of the weighting variable in x |
k |
Factor expansion for the unit with the greater value |
inplace |
If TRUE, each polygon is modified in its original place, if FALSE multi-polygons are centered on their initial centroid |
An object of the same class as x with resized polygon boundaries
Olson, J. M. (1976). Noncontiguous Area Cartograms. In The Professional Geographer, 28(4), 371-380.
library(sf) library(cartogram) nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) # transform to NAD83 / UTM zone 16N nc_utm <- st_transform(nc, 26916) # Create cartogram nc_utm_carto <- cartogram_ncont(nc_utm, weight = "BIR74") # Plot par(mfrow=c(2,1)) plot(nc[,"BIR74"], main="original", key.pos = NULL, reset = FALSE) plot(st_geometry(nc_utm), main="distorted", reset = FALSE) plot(nc_utm_carto[,"BIR74"], add =TRUE)
library(sf) library(cartogram) nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) # transform to NAD83 / UTM zone 16N nc_utm <- st_transform(nc, 26916) # Create cartogram nc_utm_carto <- cartogram_ncont(nc_utm, weight = "BIR74") # Plot par(mfrow=c(2,1)) plot(nc[,"BIR74"], main="original", key.pos = NULL, reset = FALSE) plot(st_geometry(nc_utm), main="distorted", reset = FALSE) plot(nc_utm_carto[,"BIR74"], add =TRUE)