IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Chiama classIntervals() su values(prop_by_age[["age_18_24"]]) con n = 5 e style = "pretty". Vedi il problema? 130.770 delle celle della griglia finiscono nel primo intervallo.
  • Ora chiama classIntervals() come sopra, ma con style = "quantile".
  • Usa le classi di pari dimensione passando gli argomenti n e style nel layer tm_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() specificando breaks = 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 il filename "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"
Modifica ed esegui il codice