Mapa coroplético
Ahora que ya sabes dibujar polígonos, vamos a poner tus polígonos sobre un mapa. Recuerda: sustituyes tu llamada a ggplot() por una llamada a ggmap() y la llamada original a ggplot() pasa al argumento base_layer(). Después, añades tu capa de polígonos como siempre:
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales,
aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))
¡Pruébalo ahora en la consola!
Ups, algo no pinta bien. Los distritos 1, 3 y 8 se ven dentados y mal. ¿Qué ha pasado? Parte de los límites de los distritos quedan fuera del borde del mapa. Debido a los valores predeterminados de ggmap(), cualquier dato fuera del mapa se descarta antes de dibujar, así que se pierden algunos límites de los polígonos y, al unir los puntos restantes, obtienes formas incorrectas.
No te preocupes, hay solución: ggmap() ofrece algunos argumentos para controlar este comportamiento. Los argumentos extent = "normal" junto con maprange = FALSE obligan al gráfico a usar el rango de los datos en lugar del rango del mapa para definir los límites de representación.
Este ejercicio forma parte del curso
Visualización de datos geoespaciales en R
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Fix the polygon cropping
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales, aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))