Un exemple qualitatif
Enfin, voyons un exemple de variable catégorielle. Le raster land_cover contient une catégorisation en grille de la surface terrestre. Affichez land_cover en l'imprimant :
land_cover
Vous remarquerez que les values sont numériques, mais que des attributes font correspondre ces nombres à des catégories (un peu comme le fonctionnement des facteurs).
Le choix des couleurs pour les variables catégorielles dépend beaucoup de l'objectif du graphique. Quand vous souhaitez que les catégories aient un poids visuel à peu près égal — c'est‑à‑dire qu'aucune ne ressorte davantage que les autres — une approche consiste à utiliser des couleurs de teintes différentes, mais de chroma (mesure de la vivacité) et de clarté égales (c'est le comportement par défaut des échelles de couleurs discrètes dans ggplot2, et cela peut être généré avec la fonction hcl()).
Les palettes qualitatives de RColorBrewer trouvent un équilibre entre un poids visuel comparable et la facilité d'identification des couleurs. Les schémas "paired" et "accent" s'en écartent : le premier offre des paires de couleurs de clarté différente et le second propose une palette avec des couleurs plus intenses pour mettre en évidence certaines catégories.
Pour ces données en particulier, il peut être plus logique de choisir des couleurs intuitives, comme le vert pour la forêt et le bleu pour l'eau. Peu importe l'option, il suffit de transmettre un vecteur de couleurs via l'argument palette dans la couche tm_*** correspondante pour définir de nouvelles couleurs.
Cette activité fait partie du cours
Visualiser des données géospatiales avec R
Instructions de l’exercice
- Tracez le raster
land_coveren combinanttm_shape()ettm_raster(). Par défaut,tmaputilise la palette qualitative"Set3"deRColorBrewer. - Examinez le code de
hcl_cols, qui imite la palette utilisée parggplot2. Puis retracez le rasterland_coveren passanthcl_colsà l'argumentpalettedetm_raster(). - Appelez
levels()surland_coverpour voir les catégories. - Cette fois, utilisez
intuitive_colscomme palette et ajoutez une couchetm_legend()avec l'argumentposition = c("left", "bottom").
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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