IniziaInizia gratis

Un esempio qualitativo

Per finire, vediamo un esempio con una variabile categorica. Il raster land_cover contiene una categorizzazione grigliata della superficie terrestre. Dai un'occhiata a land_cover stampandolo:

land_cover

Noterai che i values sono numerici, ma ci sono attributes che associano questi numeri a categorie (proprio come funziona con i fattori).

La scelta dei colori per variabili categoriche dipende molto dallo scopo del grafico. Quando vuoi che le categorie abbiano all'incirca lo stesso peso visivo — cioè non vuoi che una categoria risalti più delle altre — un approccio è usare colori con tonalità diverse, ma stessa croma (una misura della vivacità) e luminosità (impostazione predefinita per le scale di colori discrete in ggplot2, generabili con la funzione hcl()).

Le tavolozze qualitative di RColorBrewer bilanciano colori di pari peso visivo con la facilità di distinguere i colori. Gli schemi "paired" e "accent" si discostano da questo fornendo rispettivamente coppie di colori con diversa luminosità e una tavolozza con alcuni colori più intensi per mettere in evidenza certe categorie.

Per questi dati, potrebbe avere più senso scegliere colori intuitivi, come il verde per le foreste e il blu per l'acqua. In ogni caso, impostare nuovi colori è semplicemente una questione di passare un vettore di colori tramite l'argomento palette nel corrispondente layer tm_***.

Questo esercizio fa parte del corso

Visualizzare dati geospaziali in R

Visualizza il corso

Istruzioni dell'esercizio

  • Traccia il raster land_cover combinando tm_shape() e tm_raster(). Per impostazione predefinita tmap usa la tavolozza qualitativa "Set3" di RColorBrewer.
  • Esamina il codice per hcl_cols, che imita la tavolozza usata da ggplot2. Poi traccia di nuovo il raster land_cover, passando hcl_cols all'argomento palette di tm_raster().
  • Chiama levels() su land_cover per vedere le categorie.
  • Questa volta, usa intuitive_cols come tavolozza e aggiungi un layer tm_legend() con l'argomento position = c("left", "bottom").

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

library(raster)

# Plot land_cover



# Palette like the ggplot2 default
hcl_cols <- hcl(h = seq(15, 375, length = 9), 
                c = 100, l = 65)[-9]

# Use hcl_cols as the palette



# Examine levels of land_cover


# A set of intuitive colors
intuitive_cols <- c(
  "darkgreen",
  "darkolivegreen4",
  "goldenrod2",
  "seagreen",
  "wheat",
  "slategrey",
  "white",
  "lightskyblue1"
)

# Use intuitive_cols as palette


Modifica ed esegui il codice