{"word_count": 531, "character_count": 4974}
« Mere color, unspoiled by meaning, and unallied with definite form, can speak in the soulin 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 rColorBrewerincontournable, la palette cartographique de référence colorbrewer est aussi disponible dans R. Pour l'utiliser, il suffit d'appeler simplement le package RColorBrewer.library("RColorBrewer")display.brewer.all()colors &#60;- brewer.pal(4, "BuPu")colorsInterpoler les couleursAfin 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 &#60;- colorRampPalette(colors)pal(5) # palette en 5 classespal(30) # palette en 30 classesCréer ses propres palettesBasé 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 couleurEntre 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.RDatasource_url("https://raw.githubusercontent.com/neocarto/R/master/colors/BuildColors.R") blues&#60;-buildpal("#8ECEE9","#146594","#DCF0F8","#0B2130","#368ECA",20)greens&#60;-buildpal("#ADD39D","#1B7D34","#E5F0DA","#142F1B","#3FA136",20)reds&#60;-buildpal("#EFA5A9","#991915","#FBDEE1","#1D0809","#DE4243",20)purples&#60;-buildpal("#FFB6F1","#87036E","#FFD9FA","#3F0036","#FF00C3",20)oranges&#60;-buildpal("#FFB888","#AA4500","#FFE1CC","#3D1900","#FF6700",20)nicopal&#60;-buildpal("#FCE37A","#FF0000","#FFEB97","#E50000","#FF6700",20)nicopal2&#60;-buildpal("#B6EFB6","#080E5B","#B6EFB6","#080E5B","#518996",20) colors&#60;-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 couleurLe 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 CARTOGRAPHIQUESsource_url("https://raw.githubusercontent.com/neocarto/R/master/colors/Palettes.R")load("R/colors/colors.RData")Simples gradationsPour 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.# Simplesmypal &#60;- getpal("nicopal",10)displaypal(mypal)mypalDoubles gradationsLa 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# Doublesmypal &#60;- getpal("blues",8,"reds",8)displaypal(mypal)mypalDoubles gradations (dissymétriques)En indiquant un nombre de classes différent pour chaque palette,  getpal permet aussi de construire des gradation dissyétriques# Doublesmypal &#60;- getpal("blues",3,"reds",9)displaypal(mypal)mypalAjouter une classe centrale (middle=T)Lorsque le paramètre middle est égal à TRUE, une classe centrale grise est rajoutée.# Doublesmypal &#60;- getpal("blues",3,"reds",9,middle=T)displaypal(mypal)mypalAmé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 &#60;- getpal("blues",3,"reds",9,middle=T,alphaeffect=T)displaypal(mypal)mypalPratique non ?&#160;