Un exemple qualitatif
Pour finir, examinons 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 associent ces nombres à des catégories (comme pour les facteurs).
Le choix des couleurs pour des variables catégorielles dépend beaucoup de l’objectif du graphique. Lorsque vous souhaitez que les catégories aient un poids visuel similaire — c’est‑à‑dire qu’aucune ne se démarque davantage — une approche consiste à utiliser des couleurs de teintes variées, mais de chroma (mesure de la vivacité) et de luminosité é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 cherchent l’équilibre entre poids visuel égal et facilité d’identification des couleurs. Les schémas "paired" et "accent" s’en écartent toutefois en proposant respectivement des paires de couleurs de luminosité différente et une palette avec des couleurs plus intenses pour mettre en avant certaines catégories.
Pour ces données en particulier, il peut être plus pertinent de choisir des couleurs intuitives, comme le vert pour la forêt et le bleu pour l’eau. Quelle que soit l’option la plus adaptée, définir de nouvelles couleurs consiste simplement à passer un vecteur de couleurs via l’argument palette dans la couche tm_*** correspondante.
Cet exercice fait partie du cours
Visualiser des données géospatiales avec R
Instructions
- 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 tracez à nouveau 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 cet exemple de code.
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