Cartogramas "de Dorling"

Motivado por esta entrada construí usando muns <- st_read("data/CifraPob2023.shp") peninsula <- muns[muns$ccaa != 'Canarias',] plot(peninsula["pob_23"]) peninsula <- st_transform(peninsula, 25830) peninsula_dorling <- cartogram_dorling( x = peninsula, weight = "pob_23", k = 0.2, itermax = 100) plot(peninsula_dorling["pob_23"]) sobre unos datos que ya no recuerdo de dónde bajé. La única línea no autoexplicativa del código es peninsula <- st_transform(peninsula, 25830) que transforma las coordenadas originales de los datos en coordenadas proyectadas (o, más bien, las coordenadas proyectadas que rigen en la zona peninsular). El 25830 en cuestión me lo chivó un LLM. Antes de usar cartogram_dorling pensé cómo podría programar algo parecido a mano. La primera idea que a uno se le ocurre es la programación lineal —que, en este caso no sería lineal sino… ¿cuadrática?—; pero, casi seguro, el tamaño del problema con todas las restricciones potenciales lo hace computacionalmente inviable. Casi seguro, hay que recurrir a heurísticas para obtener una solución razonable. ...

12 de marzo de 2024 · Carlos J. Gil Bellosta

Cartogramas con recmap

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í.

15 de julio de 2019 · Carlos J. Gil Bellosta

Elecciones, mapas... y mi favorito

De entre lo bueno que pudan haber traído las últimas elecciones generales (las españolas de abril de 2019, para quien requiera mayor precisión) puede contarse una pequeña revolución en la cartografía electoral. Debemos agradecérselo al equipo de Kiko Llaneras en El País, que nos ha regalado esto. Prueba de que las cosas han cambiado es que ha sido replicado en otros sitios, como este. [Nota: no sé si estoy cometiendo injusticias en el párrafo anterior por omisión o confusión en las prelaciones; si alguien dispone de más o mejor información sobre la intrahistoria de esas publicaciones, que me avise.] ...

6 de mayo de 2019 · Carlos J. Gil Bellosta

Cartogramas rectangulares con R

Galería Paquete Y, lo siento, no tengo ejemplos míos. Pero si te animas, fabricas uno y lo enlazas en los comentarios, seguro que a alguien le sirve.

10 de mayo de 2016 · Carlos J. Gil Bellosta

Cartogramas vs huertogramas

Esto es un huertograma: Tiene la propiedad de que casi todos los pixels están encima de un huerto (o un erial, o en un cerro,…). Este es otro huertograma: Y esta es la misma información (resultados de las elecciones de 2015 en el RU) sobre un fabuloso cartograma: ¿Os habéis fijado cómo esa casi indistinguible mancha roja en la zona de Londres del huertograma adquiere su debida relevancia en el cartograma? ...

22 de mayo de 2015 · Carlos J. Gil Bellosta