¿Por qué Groenlandia es tan grande?
Fíjate bien en la visualización. ¿Por qué Groenlandia parece más grande que los 48 estados contiguos de EE. UU. cuando en realidad tiene aproximadamente un tercio de su tamaño?
Cuando representas ubicaciones de longitud y latitud en los ejes x e y de una gráfica, estás tratando 1 grado de longitud como si midiera lo mismo en cualquier lugar. Sin embargo, como la Tierra es aproximadamente esférica, la distancia que corresponde a 1 grado de longitud depende de tu latitud: varía desde 111 km en el ecuador hasta 0 km en los polos.
La forma en que tomas posiciones en una esfera y las dibujas en un plano bidimensional se describe mediante una proyección. La que has usado por defecto (también conocida como proyección equirectangular) distorsiona la anchura de las zonas cercanas a los polos. Todas las proyecciones introducen algún tipo de distorsión (¡una esfera no es un plano!), pero distintas proyecciones intentan preservar propiedades diferentes (p. ej., áreas, ángulos o distancias).
En tmap, tm_shape() acepta un argumento projection que te permite cambiar la proyección del mapa.
(Nota: en ggplot2, el cambio de proyección se hace con la función coord_map(). Consulta ?coord_map() para más detalles.)
Este ejercicio forma parte del curso
Visualización de datos geoespaciales en R
Instrucciones del ejercicio
Para ayudarte a ver las diferencias entre proyecciones, hemos añadido una capa tm_grid() que dibuja líneas de longitud y latitud equiespaciadas en el mapa.
Dentro de tu llamada a tm_shape():
- Prueba una proyección Hobo–Dyer (
projection = "hd"), diseñada para preservar el área. - En una segunda gráfica, prueba una proyección Robinson (
projection = "robin"), pensada como un compromiso entre preservar ángulos locales y área. - Para divertirte, repite la gráfica anterior pero añade
tm_style("classic")para ver cómotmappuede controlar todos los aspectos de la presentación del mapa.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
library(sp)
library(tmap)
# Switch to a Hobo–Dyer projection
tm_shape(countries_spdf) +
tm_grid(n.x = 11, n.y = 11) +
tm_fill(col = "population", style = "quantile") +
tm_borders(col = "burlywood4")
# Switch to a Robinson projection
tm_shape(countries_spdf) +
tm_grid(n.x = 11, n.y = 11) +
tm_fill(col = "population", style = "quantile") +
tm_borders(col = "burlywood4")
# Add tm_style("classic") to your plot