Perché la Groenlandia è così grande?
Osserva meglio il grafico. Perché la Groenlandia sembra più grande degli Stati Uniti contigui quando in realtà è solo circa un terzo?
Quando rappresenti longitudine e latitudine sugli assi x e y di un grafico, stai trattando 1 grado di longitudine come della stessa ampiezza indipendentemente da dove ti trovi. Tuttavia, poiché la Terra è approssimativamente sferica, la distanza corrispondente a 1 grado di longitudine dipende dalla latitudine, variando da 111 km all’equatore a 0 km ai poli.
Il modo in cui prendi posizioni su una sfera e le disegni su un piano bidimensionale è descritto da una proiezione. Quella predefinita usata qui (nota anche come proiezione equirettangolare) distorce la larghezza delle aree vicine ai poli. Ogni proiezione introduce qualche tipo di distorsione (dato che una sfera non è un piano!), ma proiezioni diverse cercano di preservare proprietà diverse (ad es. aree, angoli o distanze).
In tmap, tm_shape() accetta un argomento projection che ti permette di cambiare proiezione per il grafico.
(Nota: cambiare la proiezione di un grafico ggplot2 si fa con la funzione coord_map(). Vedi ?coord_map() per maggiori dettagli.)
Questo esercizio fa parte del corso
Visualizzare dati geospaziali in R
Istruzioni dell'esercizio
Per aiutarti a vedere le differenze tra le proiezioni, abbiamo aggiunto un livello tm_grid() che disegna linee di longitudine e latitudine equispaziate nel grafico.
All’interno della tua chiamata a tm_shape():
- Prova una proiezione Hobo–Dyer (
projection = "hd"), progettata per preservare l’area. - In un secondo grafico, prova una proiezione Robinson (
projection = "robin"), pensata come compromesso tra la preservazione degli angoli locali e dell’area. - Solo per divertirti, ripeti il grafico precedente ma aggiungi
tm_style("classic")per vedere cometmappuò controllare tutti gli aspetti della visualizzazione delle mappe.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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