En el análisis de datos geoespaciales, la visualización de mapas es crucial para entender la distribución y los patrones de nuestros datos. En otros artículos del blog, ya hemos visto como emplear la librería gglott2 para la generación de mapas estáticos o leaflet para construir mapas interactivos en R/R Studio. En esta ocasión, vamos a aprender a utilizar otra popular librería de R: tmap.
Índice
¿Qué es tmap?
tmap (Thematic Map) es una librería de R diseñada para crear mapas temáticos que representan datos asociados a áreas geográficas. Ofrece una sintaxis intuitiva y flexible similar a la de ggplot2, permitiendo a los usuarios crear mapas estáticos e interactivos de alta calidad con relativa facilidad.
Instalación y primeros pasos
Para poder utilizarla, necesitamos instalar y cargar este paquete en nuestra sesión de R. Además de tmap, vamos a incluir en nuestro script la librería geoespacial sf, que nos va a permitir manejar los datos geoespaciales.
# Instalamos la librería tmap install.packages("tmap") install.packages("sf") # Cargamos las librerías library(tmap) library(sf)
Obtención y preparación los datos de partida
Para aprender correctamente cómo debemos integrar tmap en nuestros scripts, vamos a trabajar con datos reales que nos permitan la generación de un mapa temático que muestre de un vistazo la situación la tasa de paro en las Comunidades Autónomas de España. Para ello, necesitamos obtener nuestros datos de partida.
Paso 1. Carga de los datos geoespaciales de las Comunidades Autónomas
Hemos descargado del Centro de Descargas del Centro Nacional de Información Geográfica un fichero shapefile con la geometría de los límites autonómicos de España. Para cargarlos en nuestra sesión de R, como anunciábamos al principio, utilizaremos la librería sf.
# Cargamos la geometría de las Comunidades (reemplaza 'ruta_del_archivo' con la ruta al archivo) ccaa <- st_read("ruta_del_fichero/Comunidades_Autonomas_ETRS89_30N") head(ccaa) # Muestra las primeras 6 observaciones del fichero
Paso 2. Descarga de los datos estadísticos de tasa de paro por comunidades.
A continuación, hemos descargado un fichero en formato CSV separado por comas de las tasas de paro para ambos sexos en personas de 25 y más años de todas las Comunidades Autónomas de España del primer trimestre de 2024. Lo hemos obtenido del Instituto Nacional de Estadística (INE) y lo hemos cargado en R con la función nativa read.csv().
# Cargamos los datos de tasa de paro (reemplaza 'ruta_del_archivo' con la ruta al archivo) tasa_paro_ccaa <- read.csv('ruta_del_fichero/datos_paro.csv', sep=";", header=TRUE)
En este paso, es muy importante introducir el separador de los datos de nuestro CSV correcto, indicar si tiene encabezado o no, etc… Se puede consultar la ayuda de la función ?read.csv
Paso 3. Procesado de datos
Una vez que tenemos ya los datos, es necesario unirlos en un único objeto para generar los mapas temáticos. Para realizar esta unión, podemos usar la función merge() de R. Esta permite unir dos data.frame a través de una columna que compartan en común.
# Unimos los datos geoespaciales con los datos de las tasas de paro ccaa_tasa_paro <- merge(ccaa, tasa_paro_ccaa, by.x = "NAMEUNIT", by.y = "Comunidades.y.Ciudades.Autónomas")
En este ejemplo, tenemos la columna «NAMEUNIT» de ccaa y la columna «Comunidades.y.Ciudades.Autónomas» de tasa_paro_ccaa con datos del nombre oficial de cada Comunidad Autónoma de España. Si esto no se da, será necesario realizar un procesado más exhaustivo de los datos.
Creando un mapa básico con tmap
Con los datos ya preparados, podemos empezar creando un mapa básico que muestre la tasa de desempleo en cada Comunidad Autónoma. Con tmap, antes de crear un mapa, debemos utilizar la función tmap_mode() para definir como se va a renderizar: de manera estática (como una imagen fija) o interactiva (con opciones de zoom, pan, clics…).
# Modo estático tmap_mode("plot") # Modo interactivo tmap_mode("view")
Para este primer ejemplo, vamos a trabajar en modo estático.
# Ponemos el modo de visualización estática tmap_mode("plot") # Creamos el mapa de tasa de desempleo tm_shape(ccaa_tasa_paro) + tm_polygons("tasa", title = "Tasa de Paro (%)", palette = "-Greens", border.col = "black") + tm_layout(title = "Tasa de Paro por Comunidad Autónoma en España", legend.outside = TRUE)
El significado de cada línea de código es el siguiente:
- tm_shape(ccaa_tasa_paro): esta función se debe utilizar para decirle a tmap sobre que capa de datos geoespaciales vamos a trabajar. En nuestro caso le pasamos ccaa_tasa_paro creado con toda la información geográfica y con los datos asociados de tasa de paro.
- tm_polygons(«tasa», …): esta función añade una capa de polígonos al mapa con sus geometrías coloreadas en función de la columna que pasemos en su primer argumento. En nuestro ejemplo, usamos la columna «tasa», que contiene la tasa de paro. Podemos añadir más argumentos como title para dar un título a la leyenda mapa o palette para definir una paleta de colores específica.
- tm_layout(): se usa para personalizar aspectos del diseño del mapa. Por ejemplo, al usar title damos un título al mapa o con legend.outside = TRUE colocamos la leyenda fuera del mapa. Podemos ajustar muchas otras opciones con tm_layout(), como la posición de la leyenda, el tamaño de las etiquetas, un fondo.. etc.
Para información más detallada sobre estás funciones podemos utilizar la ayuda de R: ?tm_shape ?tm_polygons ?tm_layout
Creación de un mapa interactivo
Como comentábamos al inicio del artículo, tmap permite generar mapas temáticos leaflet.
# Cambiamos a modo de visualización interactiva tmap_mode("view") # Creamos el mapa interactivo tm_shape(ccaa_tasa_paro) + tm_polygons("tasa", title = "Tasa de Paro (%)", palette = "-Greens") + tm_layout(title = "Tasa de Paro por Comunidad Autónoma en España")
Como se puede ver, el código de la creación del mapa interactivo es prácticamente igual que la del básico. Únicamente hemos eliminado la parte en la que sacamos la leyenda fuera, ya que en un mapa leaflet no está permitido.
Conclusión
La librería tmap es un gran recurso para un analista de datos geoespaciales que trabaje en R. Su capacidad para crear visualizaciones tanto estáticas como interactivas, junto con su facilidad de uso y flexibilidad, la convierten en una elección excelente para la creación de mapas temáticos.
![](https://mappinggis.com/wp-content/uploads/2020/09/diana-alonso.jpg)
Tutora del curso de R y SIG. Grado en Ingeniería en tecnologías de la información y en Geomática y topografía. Máster en Ingeniería y geoinformación. Echa un vistazo a todos nuestros cursos de SIG online.