[R] Créer des palettes de couleurs
« Mere color, unspoiled by meaning, and unallied with definite form, can speak in the soul
in a thousands different ways » (Oscard Wilde)
En cartographie, la couleur est une variable forte, immédiatement et intensément perceptible, ce qui lui donne un fort pouvoir différentiel. Son emploi est très apprécié tant par le lecteur que par le cartographe, elle permet d’innombrables possibilités de variations visuelles et favorise l’esthétisme. Dans ce billet, je propose un moyen de construire à peu de frais des palettes de couleurs directement utilisables pour la cartographie.
le package rColorBrewer
incontournable, la palette cartographique de référence colorbrewer est aussi disponible dans R. Pour l’utiliser, il suffit d’appeler simplement le package RColorBrewer.
Interpoler les couleurs
Afin de maximiser la différenciation des couleurs entre elles, la library rColorBrewer propose des palettes qui dépassent rarement 10 classes. Or, pour certains types de configuration spatiale, il peut être utile d’avoir plus de 10 classes (e.g. lorsque la configuration spatiale est graduelle). L’instruction colorRampPalette permet alors d’interpoler les couleurs pour augmenter le nombre de classes.
pal <- colorRampPalette(colors) pal(5) # palette en 5 classes pal(30) # palette en 30 classes
Créer ses propres palettes
Basé sur l’idée qu’une palette de couleurs complète peut se construire quasi automatiquement, le programme ci-dessous est un générateur de gammes de couleurs. Le programme repose sur 6 paramètres :
– N : le nombre de classes maximum
– colmin1 : La couleur la plus claire pour le nombre de classe minimum (2 classes)
– colmax1 : La couleur la plus foncée pour le nombre de classes minimum (2 classes)
– colmin2 : La couleur la plus claire pour le nombre de classe maximum (e.g 20 classes)
– colmax2 : La couleur la plus foncée pour le nombre de classes maximum (e.g 20 classes)
– colref : la couleur centrale de référence pour cette palette de couleur
Entre toutes ces valeurs, chacune des couleurs intermédiaires est générée automatiquement par interpolation (en maximisant les écarts de valeurs entre les classes foncées moins facilement différentiables). In fine, le programme génère le fichier colors.RData qui contient la liste de toutes les palettes ainsi fabriquées.
library("devtools") setwd("your local folder") # 1 - CREATION DU FICHIER colors.RData source_url("https://raw.githubusercontent.com/neocarto/R/master/colors/BuildColors.R") blues<-buildpal("#8ECEE9","#146594","#DCF0F8","#0B2130","#368ECA",20) greens<-buildpal("#ADD39D","#1B7D34","#E5F0DA","#142F1B","#3FA136",20) reds<-buildpal("#EFA5A9","#991915","#FBDEE1","#1D0809","#DE4243",20) purples<-buildpal("#FFB6F1","#87036E","#FFD9FA","#3F0036","#FF00C3",20) oranges<-buildpal("#FFB888","#AA4500","#FFE1CC","#3D1900","#FF6700",20) nicopal<-buildpal("#FCE37A","#FF0000","#FFEB97","#E50000","#FF6700",20) nicopal2<-buildpal("#B6EFB6","#080E5B","#B6EFB6","#080E5B","#518996",20) colors<-c(blues=list(blues),reds=list(reds),greens=list(greens),purples=list(purples),oranges=list(oranges),nicopal=list(nicopal),nicopal2=list(nicopal2)) save(colors, file = "colors.RData")
Utilisation des palettes de couleur
Le programme Palettes.R permet d’appeler et afficher les palettes cartographiques dans R. Pour poursuivre, il est également nécessaire de chargé le fichier colors.RData construit précédemment.
# 2 - FABRICATION DES PALETTES CARTOGRAPHIQUES source_url("https://raw.githubusercontent.com/neocarto/R/master/colors/Palettes.R") load("R/colors/colors.RData")
Simples gradations
Pour créer une palette de couleurs adaptée à la cartographie, il suffit d’appeler la fonction getpal en précisant le nom de la palette choisie et le nombre de classes désirées. L’instruction displaypal permet alors d’afficher la palette de couleur dans la fenêtre graphique.
# Simples mypal <- getpal("nicopal",10) displaypal(mypal) mypal
Doubles gradations
La fonction getpal permet également de combiner 2 palettes de couleurs entre elles pour créer une double gradation. Pour cela, il faut passer à la fonction les noms de deux palettes simples
# Doubles mypal <- getpal("blues",8,"reds",8) displaypal(mypal) mypal
Doubles gradations (dissymétriques)
En indiquant un nombre de classes différent pour chaque palette, getpal permet aussi de construire des gradation dissyétriques
# Doubles mypal <- getpal("blues",3,"reds",9) displaypal(mypal) mypal
Ajouter une classe centrale (middle=T)
Lorsque le paramètre middle est égal à TRUE, une classe centrale grise est rajoutée.
# Doubles mypal <- getpal("blues",3,"reds",9,middle=T) displaypal(mypal) mypal
Améliorer les contrastes grâce à la transparence (alphaeffect=T)
Enfin, l’option alphaeffect permet d’accenteur les contrastes en affectant graduellement de la transparence.
mypal <- getpal("blues",3,"reds",9,middle=T,alphaeffect=T) displaypal(mypal) mypal
Pratique non ?
OpenEdition vous propose de citer ce billet de la manière suivante :
Nicolas Lambert (3 mars 2015). [R] Créer des palettes de couleurs. Carnet (neo)cartographique. Consulté le 7 octobre 2024 à l’adresse https://doi.org/10.58079/rrf2