Rejillas poblacionales con R (un borrador)

me llegó ayer por Twitter (vía @unnombrealazar). En el mapa aparece representada la edad media de la población por provincia (y hoy voy a dar las cloropetas por buenas). Salta a la vista Guadalajara: tiene una edad media ¿sorprendentemente? baja. Tanto que tuve que comprobarlo en el INE. La explicación (siempre a posteriori) más obvia es @gilbellosta @unnombrealazar inmigrantes que trabajan en el corredor del henares, familias con niños supongo – jesus alfaro (@jesusalfar) 26 de marzo de 2017 ...

28 de marzo de 2017 · Carlos J. Gil Bellosta

Una abominación gráfica

Llega el verano, llega el relleno: rescato de mi disco duro una abominación gráfica, para el espanto de todos Vds. Aparte de otras consideraciones, si la tasa es negativa, ¿se crea una imagen especular del perfil del país?

15 de julio de 2016 · Carlos J. Gil Bellosta

Este NO es el mapa de la violencia de género en España

A pesar de que el titular bajo el que aparece dice lo contrario, no es el mapa de la conocida como violencia de género en España. Tasas del 10-20% significarían que en mi entorno tendrían que existir bastantes casos cuando, al contrario, no me consta ninguno. En el cuerpo de la noticia se lee que las tasas no son por cien sino por diez mil (si es que no son por cien mil: puestos a hacer bailar los ceros, ¿quién sabe?). ...

5 de julio de 2016 · Carlos J. Gil Bellosta

6602.767 km alrededor de España para visitar todas sus capitales de provincia

O tal dice lo que expongo a continuación. Paquetes necesarios: library(rvest) library(caRtociudad) library(reshape2) library(ggmap) library(plyr) library(TSP) Extracción de las provincias y sus capitales (de la Wikipedia): capitales <- read_html("https://es.wikipedia.org/wiki/Anexo:Capitales_de_provincia_de_Espa%C3%B1a_por_poblaci%C3%B3n") capitales <- html_nodes(capitales, "table") capitales <- html_table(capitales[[1]])$Ciudad capitales <- capitales[!capitales %in% c("Las Palmas de Gran Canaria", "Melilla", "Ceuta", "Mérida", "Santa Cruz de Tenerife", "Santiago de Compostela", "Palma de Mallorca")] Y sus coordenadas: coordenadas <- ldply(capitales, function(x) { tmp <- cartociudad_geocode(x)[1,] res <- data.frame(ciudad = x, provincia = tmp$province, lat = tmp$latitude, lon = tmp$longitude) if(is.na(res$lat)){ tmp <- geocode(paste(x, "España")) res$lat <- tmp$lat res$lon <- tmp$lon } res }) # Pobre Logroño: ¡Cartociudad lo ubica en Asturias! coords.logrono <- geocode("Logroño") coordenadas$lat[coordenadas$ciudad == "Logroño"] <- coords.logrono$lat coordenadas$lon[coordenadas$ciudad == "Logroño"] <- coords.logrono$lon Construcción de la matriz simétrica de distancias (¡tarda un buen rato!): ...

20 de junio de 2016 · 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

Ficheros KML con R y ggmap

Fácil: library(maptools) library(ggmap) # un fichero bajado el Ayto. de Madrid # (catálogo de datos abiertos) rutas <- getKMLcoordinates("dat/130111_vias_ciclistas.kml") # procesando el fichero kml rutas <- lapply(1:length(rutas), function(x) data.frame(rutas[[x]], id = x)) rutas <- do.call(rbind, rutas) # mapa de Madrid mapa <- get_map("Madrid", source = "stamen", maptype = "toner", zoom = 12) # pintando los tramos sobre el mapa ggmap(mapa) + geom_path(aes(x = X1, y = X2, group = id), data = rutas, colour = "red") produce Nota: KML es esto.

1 de marzo de 2016 · Carlos J. Gil Bellosta

Google Maps (o CartoDB, etc.) "says 'NO'"

Si no sabéis a qué hace referencia el título, no os perdáis esto (y otros vídeos de la serie). El otro día (véase esto) mostré una imagen de mi última charla sobre mapas. Hoy le toca el turno a esta otra: Se trata de un mapa de Gran Bretaña de alrededor de 1250 realizado por un tal Matthew Paris. Tiene una particularidad: cuenta E. Tufte que en un borde el autor indica que la isla debería ser más alargada, pero que, de respetar las proporciones, no le habría cabido el mapa en el pergamino. Y a la gente le hace gracia. ...

15 de octubre de 2015 · Carlos J. Gil Bellosta

¡Qué primitivos eran aquellos antepasados nuestros...! ¿O no?

El sábado pasado, en Medialab Prado (gracias a @xvilan y @adolflow por la invitación) presenté lo que pudiera llamarse un pequeño manifiesto por una cartografía antropocéntrica. En él mostré un mapamundi T-O (o tau-omega), que tiene esta pinta: Se trata, efectivamente, de una representación del mundo conocido allá por el siglo XI. Se ven en él Europa, Asia y África separados por un mar en forma de T y encerrados en una enorme O. Supongo que todo el mundo entonces sabía que la costa no era tal y como se representaba allí. Que había cabos, islotes, istmos, etc. ...

13 de octubre de 2015 · Carlos J. Gil Bellosta

Grafos por vecindad en mapas

Dando vueltas (infructuosas) al asunto de los cartogramas he dado con un subproducto con el que, por hoy, me conformo: crear un grafo a partir de relaciones de vecindad entre polígonos. La magia, obra de [spdep::poly2nb](http://www.inside-r.org/packages/cran/spdep/docs/poly2nb); el código, library(maptools) library(spdep) library(igraph) # fichero descargado del INE aragon <- readShapePoly("ccaa00c02.shp") plot(aragon) aragon.nb <- poly2nb(aragon) # vértices vertices <- aragon@data vertices$id <- 1:nrow(aragon@data) vertices <- vertices[, c("id", setdiff(colnames(vertices), "id"))] # coordenadas aproximadas de los vértices my.layout.orig <- do.call(rbind, lapply(vertices$id, function(i) aragon@polygons[[i]]@Polygons[[1]]@labpt)) # aristas aristas <- do.call(rbind, lapply(1:length(aragon.nb), function(x) data.frame(from = x, to = aragon.nb[[x]]))) aristas <- aristas[aristas$from < aristas$to,] aristas <- aristas[aristas$from %in% vertices$id,] aristas <- aristas[aristas$to %in% vertices$id,] # grafo g <- graph.data.frame(aristas, directed = FALSE, vertices) plot(g, layout = my.layout.orig, vertex.label = NA, vertex.size = 0.1)

27 de mayo de 2015 · 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