Mappa coropletica
Ora che sai come disegnare i poligoni, mettiamo i tuoi poligoni su una mappa. Ricorda: sostituisci la chiamata a ggplot() con una a ggmap() e la chiamata originale a ggplot() va nell’argomento base_layer(), poi aggiungi il layer dei poligoni come al solito:
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales,
aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))
Provalo ora nella console!
Ops, qualcosa non torna. I distretti 1, 3 e 8 sembrano frastagliati e sbagliati. Che è successo? Parte dei confini dei distretti va oltre il bordo della mappa. A causa delle impostazioni predefinite di ggmap(), tutti i dati fuori mappa vengono scartati prima del plot, quindi alcuni bordi dei poligoni vengono eliminati e, quando i punti rimanenti vengono uniti, ottieni forme errate.
Nessun problema, c’è una soluzione: ggmap() offre alcuni argomenti per controllare questo comportamento. Gli argomenti extent = "normal" insieme a maprange = FALSE obbligano il grafico a usare l’intervallo dei dati invece dell’intervallo della mappa per definire i limiti del plotting.
Questo esercizio fa parte del corso
Visualizzare dati geospaziali in R
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Fix the polygon cropping
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales, aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))