EmpezarEmpieza gratis

Construir un gráfico por capas

Ahora que ya sabes un poco más sobre tmap(), vamos a construir tu gráfico anterior de población por capas y a hacer algunos retoques para mejorarlo. Empiezas con una capa tm_shape() que define los datos que quieres usar y luego añades una capa tm_fill() para colorear tus polígonos usando la variable population:

tm_shape(countries_spdf) +
  tm_fill(col = "population") 

Probablemente el mayor problema del gráfico resultante es que la escala de color no es muy informativa: ¡el primer color (amarillo muy pálido) abarca todos los países con menos de 200 millones de habitantes! Como la escala de color está asociada a la capa tm_fill(), los ajustes de esta escala se hacen en esa llamada. Aprenderás mucho más sobre color en el Capítulo 3, pero por ahora, ten en cuenta que el argumento style controla cómo se eligen los cortes.

A tu gráfico también le faltan contornos de los países. Puedes añadir una capa tm_borders() para esto, pero procuremos que no sean demasiado fuertes visualmente. Quizás un marrón quedaría bien.

La ventaja de usar objetos espaciales se ve muy clara cuando cambias el tipo de gráfico que haces. Probemos también un diagrama de burbujas donde el tamaño de las burbujas corresponda a la población. Si estuvieras usando ggplot2, esto implicaría mucho reprocesamiento de tus datos. Con tmap, solo cambias una capa.

Este ejercicio forma parte del curso

Visualización de datos geoespaciales en R

Ver curso

Instrucciones del ejercicio

  • Añade style = "quantile" a tm_fill(). Esto elige los cortes de la escala de color basándose en un número igual de observaciones en cada intervalo.
  • Al mismo gráfico, añade una capa tm_borders() con col = "burlywood4".
  • Crea un gráfico nuevo igual que el primero, pero en lugar de tm_fill() añade una capa tm_bubbles() con size mapeado a la población.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

library(sp)
library(tmap)

# Add style argument to the tm_fill() call
tm_shape(countries_spdf) +
  tm_fill(col = "population") +
  # Add a tm_borders() layer 
  

# New plot, with tm_bubbles() instead of tm_fill()
Editar y ejecutar código