He construido
que, obviamente no es la gran maravilla, basándome en Rectangular Statistical Cartograms in R: The recmap Package y usando
library(rgdal)
library(pxR)
library(recmap)
provs <- readOGR(dsn = "provincias/",
layer = "Provincias")
pobl <- as.data.frame(read.px("2852.px",
encoding = "latin1"), use.codes = T)
pobl2 <- as.data.frame(read.px("2852.px",
encoding = "latin1"))
pobl$nombre <- pobl2$Provincias
pobl <- pobl[, c("Provincias", "nombre", "value")]
colnames(pobl) <- c("COD_PROV", "nombre", "poblacion")
pobl <- pobl[pobl$COD_PROV != "null",]
pobl <- pobl[!pobl$COD_PROV %in%
c("51", "52", "38", "07", "35"),]
dat <- merge(provs, pobl,
by = "COD_PROV", all.x = FALSE)
dat@data$NOM_PROV <- NULL
dat$z <- dat$poblacion
tmp <- as.recmap(dat)
tmp$name <- dat@data$nombre
tmp$ccaa <- dat@data$COD_CCAA
res <- recmapGA(tmp, popSize = 300,
maxiter = 30, run = 10)
cartogram <- res$Cartogram
ccaa <- tmp[, c("name", "ccaa")]
ccaa$ccaa <- as.numeric(factor(ccaa$ccaa))
cartogram <- merge(cartogram, ccaa)
plot.recmap(cartogram, col.text = "black",
main = "cartograma -- población\n españa peninsular",
col = cartogram$ccaa)
Como los datos los he bajado de por ahí y no recuerdo dónde, dejo como referencia el objeto arriba llamado tmp
aquí.