Un esempio di scala a intervalli
Torniamo al tuo grafico della proporzione di popolazione tra 18 e 24 anni:
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = vir) +
tm_legend(position = c("right", "bottom"))
Il grafico era problematico perché la maggior parte delle proporzioni ricadeva nel livello di colore più basso e, di conseguenza, non si vedevano molti dettagli. Un modo per risolvere questo problema è: invece di suddividere l’intervallo della variabile in classi di uguale ampiezza, puoi suddividerlo in categorie più utili.
Iniziamo replicando le classi predefinite di tmap: cinque categorie, tagliate usando le interruzioni "pretty". Poi potrai provare alcuni degli altri metodi per suddividere una variabile in intervalli. Usare direttamente la funzione classIntervals() ti dà un riscontro rapido su quali saranno le soglie, ma il modo migliore per valutare un insieme di soglie è tracciarle su un grafico.
(A margine, un altro modo per affrontare questo tipo di problema è cercare una trasformazione della variabile, così che le classi di uguale ampiezza sulla scala trasformata risultino più informative.)
Questo esercizio fa parte del corso
Visualizzare dati geospaziali in R
Istruzioni dell'esercizio
- Chiama
classIntervals()suvalues(prop_by_age[["age_18_24"]])conn = 5estyle = "pretty". Vedi il problema? 130.770 delle celle della griglia finiscono nel primo intervallo. - Ora chiama
classIntervals()come sopra, ma constyle = "quantile". - Usa le classi di pari dimensione passando gli argomenti
nestylenel layertm_raster()del tuo grafico. - Crea un istogramma di
values(prop_by_age[["age_18_24"]]). Dove imposteresti le soglie? - Crea le tue soglie in
tm_raster()specificandobreaks = c(0.025, 0.05, 0.1, 0.2, 0.25, 0.3, 1). - Salva il grafico finale come mappa leaflet usando
tmap_save()e ilfilename"prop_18-24.html".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
mag <- viridisLite::magma(7)
library(classInt)
# Create 5 "pretty" breaks with classIntervals()
# Create 5 "quantile" breaks with classIntervals()
# Use 5 "quantile" breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag) +
tm_legend(position = c("right", "bottom"))
# Create histogram of proportions
# Use fixed breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag,
style = "fixed")
# Save your plot to "prop_18-24.html"