Une version actualisée de ce chapitre est disponible sur guide-R : Couleurs & Palettes

Ce chapitre est évoqué dans le webin-R #08 (ggplot2 et la grammaires des graphiques) sur YouTube.

Ce chapitre est évoqué dans le webin-R #13 (exemples de graphiques avancés) sur YouTube.

Noms de couleur

Lorsque l’on doit indiquer à R une couleur, notamment dans les fonctions graphiques, on peut mentionner certaines couleurs en toutes lettres (en anglais) comme "red" ou "blue". La liste des couleurs reconnues par R est disponible sur http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf.

Couleurs RVB

En informatique, les couleurs sont usuellement codées en Rouge/Vert/Bleu (voir https://fr.wikipedia.org/wiki/Rouge_vert_bleu) et représentées par un code hexadécimal à 6 caractères, précédés du symbole #. Ce code est reconnu par R et on pourra par exemple indiquer "#FF0000" pour la couleur rouge. Le code hexadécimal des différentes couleurs peut s’obtenir aisément sur internet, de nombreux sites étant consacrés aux palettes de couleurs.

Parfois, au lieu du code hexadécimal, les couleurs RVB sont indiquées avec trois chiffres entiers compris entre 0 et 255. La conversion en hexadécimal se fait avec la fonction rgb.

rgb(255, 0, 0, maxColorValue = 255)
[1] "#FF0000"

Palettes de couleurs

Palettes natives

R fournit nativement quelques palettes de couleurs continues telles que rainbow, heat.colors, terrain.colors, topo.colors ou encore cm.colors.

Voici un aperçu de ces palettes de couleurs :

Color Brewer

Le projet Color Brewer a développé des palettes cartographiques, à la fois séquentielles, divergentes et catégorielles, présentées en détail sur http://colorbrewer2.org/. Pour chaque type de palette, et en fonction du nombre de classes, est indiqué sur ce site si la palette est adaptée aux personnes souffrant de daltonisme, si elle est rendra correctement sur écran, en cas d’impression couleur et en cas d’impression en noir et blanc.

Voici un aperçu des différentes palettes disponibles :

L’extension RColorBrewer permets d’accéder à ces palettes sous R.

Si on utilise ggplot2, les palettes Color Brewer sont directement disponibles via les fonctions scale_fill_brewer et scale_colour_brewer.

ATTENTION : les palettes Color Brewer sont seulement implémentées pour des variables catégorielles. Il est cependant possible de les utiliser avec des variables continues en les combinants avec scale_fill_gradientn ou scale_coulour_gradientn (en remplaçant "Set1" par le nom de la palette désirée) :

scale_fill_gradientn(values = RColorBrewer::brewer.pal(6, "Set1"))

Viridis

Les palettes de couleurs de la famille Viridis ont initialement été créées pour Matplolib de telles manières que :

  • les couleurs sont perçues de manière uniformes, même lorsqu’elles sont imprimées en noir et blanc ;
  • les couleurs sont distinguées par les formes les plus courantes de daltonisme.

Voici un aperçu des différentes palettes de cette famille :

Ces palettes sont accessibles de manière générale via l’extension viridis.

Elles sont également implémentées dans gpplot2 via les fonctions scale_fill_viridis_c et scale_colour_viridis_c pour des variables continues et scale_fill_viridis_d et scale_colour_viridis_d pour des variables discrètes.

ggsci

L’extension ggsci fournie plusieurs palettes de couleurs inspirées de journaux scientifiques (comme le Lancet ou le New England Journal of Medicine) mais aussi de séries/films (comme les Simpsons ou Star Trek).

On y trouve également des palettes continues basées sur Material Design de Google.

Toutes ces palettes sont directement utilisables avec ggplot2.

Plus d’informations sur https://cran.r-project.org/web/packages/ggsci/vignettes/ggsci.html.

hrbrthemes

L’extension hrbrthemes propose deux palettes discrètes : ipsum_pal et ft_pal ainsi que les fonctions correspondantes pour ggplot2.

library(hrbrthemes)
scales::show_col(ipsum_pal()(9))

scales::show_col(ft_pal()(9))

ggthemes

L’extension ggthemes fournit plusieurs palettes de couleurs, en particulier few_pal issue de l’ouvrage Show Me the Numbers (2012) de Stephen Few ; colorblind_pal adaptées aux personnes daltoniennes ; ptol_pal inspirée de l’ouvrage Colour Schemes (2012) de Paul Tol ; et diverses autres (voir https://jrnold.github.io/ggthemes/).

library(ggthemes)
scales::show_col(few_pal()(8))

scales::show_col(few_pal("Dark")(8))

scales::show_col(colorblind_pal()(8))

scales::show_col(ptol_pal()(12))

khroma

L’extension khroma implémente elle aussi les palettes de couleurs proposées par Paul Tol dans Colour Schemes (2012) mais de manière plus complète que ggthemes.

library(khroma)
plot_scheme(colour("bright")(7), colours = TRUE)

library(ggplot2)
p <- ggplot(mpg) +
  aes(x = displ, y = hwy, colour = class) +
  geom_point()
p + scale_colour_bright()

plot_scheme(colour("vibrant")(7), colours = TRUE)

p + scale_colour_vibrant()

plot_scheme(colour("muted")(9), colours = TRUE)

p + scale_colour_muted()

Pour plus de détails, voir https://khroma.archaeo.science/articles/tol.html

paletteer

L’extension paletteer vise à proposer une interface unifiée pour l’utilisation de palettes de couleurs fournies par d’autres extensions.

scale_color_paletteer_d et scale_color_paletteer_c permettent de sélectionner une des palettes disponibles avec un usage avec ggplot2. Il existe bien entendu leur équivalent pour l’esthétique fill.

library(paletteer)
ggplot(iris) +
  aes(Sepal.Length, Sepal.Width, color = Species) +
  geom_point() +
  scale_color_paletteer_d("nord::aurora")

Voici une liste de palettes disponibles via paletteer :

Package and Palette Name Color Count and Palette
awtools
a_palette 8
ppalette 8
bpalette 16
gpalette 4
mpalette 9
spalette 6
dichromat
BrowntoBlue_10 10
BrowntoBlue_12 12
BluetoDarkOrange_12 12
BluetoDarkOrange_18 18
DarkRedtoBlue_12 12
DarkRedtoBlue_18 18
BluetoGreen_14 14
BluetoGray_8 8
BluetoOrangeRed_14 14
BluetoOrange_10 10
BluetoOrange_12 12
BluetoOrange_8 8
LightBluetoDarkBlue_10 10
LightBluetoDarkBlue_7 7
Categorical_12 12
GreentoMagenta_16 16
SteppedSequential_5 25
dutchmasters
milkmaid 13
pearl_earring 11
view_of_Delft 12
little_street 11
anatomy 7
staalmeesters 7
ggsci
nrc_npg 10
default_aaas 10
default_nejm 8
lanonc_lancet 9
default_jama 7
default_jco 10
default_ucscgb 26
category10_d3 10
category20_d3 20
category20b_d3 20
category20c_d3 20
default_igv 51
alternating_igv 2
default_locuszoom 7
default_uchicago 9
light_uchicago 9
dark_uchicago 9
hallmarks_dark_cosmic 10
hallmarks_light_cosmic 10
signature_substitutions_cosmic 6
springfield_simpsons 16
planetexpress_futurama 12
schwifty_rickandmorty 12
uniform_startrek 7
legacy_tron 7
default_gsea 12
red_material 10
pink_material 10
purple_material 10
deep_purple_material 10
indigo_material 10
blue_material 10
light_blue_material 10
cyan_material 10
teal_material 10
green_material 10
light_green_material 10
lime_material 10
yellow_material 10
amber_material 10
orange_material 10
deep_orange_material 10
brown_material 10
grey_material 10
blue_grey_material 10
ggpomological
pomological_base 7
pomological_palette 9
ggthemes
calc 12
manyeys 19
gdoc 10
fivethirtyeight 6
colorblind 8
Tableau_10 10
Tableau_20 20
Color_Blind 10
Seattle_Grays 5
Traffic 9
Miller_Stone 11
Superfishel_Stone 10
Nuriel_Stone 9
Jewel_Bright 9
Summer 8
Winter 10
Green_Orange_Teal 12
Red_Blue_Brown 12
Purple_Pink_Gray 12
Hue_Circle 19
Classic_10 10
Classic_10_Medium 10
Classic_10_Light 10
Classic_20 20
Classic_Gray_5 5
Classic_Color_Blind 10
Classic_Traffic_Light 9
Classic_Purple_Gray_6 6
Classic_Purple_Gray_12 12
Classic_Green_Orange_6 6
Classic_Green_Orange_12 12
Classic_Blue_Red_6 6
Classic_Blue_Red_12 12
Classic_Cyclic 13
few_Light 9
few_Medium 9
few_Dark 9
excel_Atlas 6
excel_Badge 6
excel_Berlin 6
excel_Celestial 6
excel_Crop 6
excel_Depth 6
excel_Droplet 6
excel_Facet 6
excel_Feathered 6
excel_Gallery 6
excel_Headlines 6
excel_Integral 6
excel_Ion_Boardroom 6
excel_Ion 6
excel_Madison 6
excel_Main_Event 6
excel_Mesh 6
excel_Office_Theme 6
excel_Organic 6
excel_Parallax 6
excel_Parcel 6
excel_Retrospect 6
excel_Savon 6
excel_Slice 6
excel_Vapor_Trail 6
excel_View 6
excel_Wisp 6
excel_Wood_Type 6
excel_Aspect 6
excel_Blue_Green 6
excel_Blue_II 6
excel_Blue_Warm 6
excel_Blue 6
excel_Grayscale 6
excel_Green_Yellow 6
excel_Green 6
excel_Marquee 6
excel_Median 6
excel_Office_2007_2010 6
excel_Orange_Red 6
excel_Orange 6
excel_Paper 6
excel_Red_Orange 6
excel_Red_Violet 6
excel_Red 6
excel_Slipstream 6
excel_Violet_II 6
excel_Violet 6
excel_Yellow_Orange 6
excel_Yellow 6
wsj_rgby 4
wsj_red_green 2
wsj_black_green 4
wsj_dem_rep 3
wsj_colors6 6
stata_s2color 15
stata_s1rcolor 15
stata_s1color 15
stata_mono 15
stata_economist 15
hc_default 10
hc_darkunica 11
hc_bg 5
hc_fg 12
ghibli
MarnieLight1 7
MarnieMedium1 7
MarnieDark1 7
MarnieLight2 7
MarnieMedium2 7
MarnieDark2 7
PonyoLight 7
PonyoMedium 7
PonyoDark 7
LaputaLight 7
LaputaMedium 7
LaputaDark 7
MononokeLight 7
MononokeMedium 7
MononokeDark 7
SpiritedLight 7
SpiritedMedium 7
SpiritedDark 7
YesterdayLight 7
YesterdayMedium 7
YesterdayDark 7
KikiLight 7
KikiMedium 7
KikiDark 7
TotoroLight 7
TotoroMedium 7
TotoroDark 7
grDevices
blues9 9
jcolors
default 5
pal2 5
pal3 5
pal4 6
pal5 6
pal6 8
pal7 8
pal8 12
pal9 6
pal10 10
pal11 12
pal12 13
rainbow 9
LaCroixColoR
PassionFruit 6
Mango 6
Pure 6
Lime 6
Lemon 6
Orange 6
Berry 6
CranRaspberry 6
Pamplemousse 6
PeachPear 6
Coconut 6
Apricot 6
Tangerine 7
KeyLime 5
PommeBaya 5
CeriseLimon 6
PinaFraise 6
KiwiSandia 7
MelonPomelo 6
MurePepino 6
paired 14
NineteenEightyR
cobra 6
electronic_night 5
hotpink 5
malibu 5
miami1 5
miami2 5
seventies_aint_done_yet 5
sonny 5
sunset1 5
sunset2 5
sunset3 5
youngturqs 12
nord
polarnight 4
snowstorm 3
frost 4
aurora 5
lumina 5
mountain_forms 5
silver_mine 5
lake_superior 6
victory_bonds 5
halifax_harbor 6
moose_pond 8
algoma_forest 7
rocky_mountain 6
red_mountain 8
baie_mouton 7
afternoon_prarie 9
ochRe
namatjira_qual 8
namatjira_div 8
mccrea 11
parliament 8
tasmania 7
nolan_ned 5
winmar 7
olsen_qual 6
olsen_seq 14
williams_pilbara 7
healthy_reef 9
emu_woman_paired 18
galah 6
lorikeet 6
dead_reef 6
jumping_frog 5
palettetown
bulbasaur 13
ivysaur 13
venusaur 14
charmander 13
charmeleon 12
charizard 14
squirtle 14
wartortle 13
blastoise 14
caterpie 12
metapod 5
butterfree 13
weedle 11
kakuna 8
beedrill 14
pidgey 12
pidgeotto 13
pidgeot 14
rattata 13
raticate 13
spearow 15
fearow 12
ekans 12
arbok 10
pikachu 10
raichu 14
sandshrew 10
sandslash 13
nidoranf 11
nidorina 13
nidoqueen 13
nidoranm 10
nidorino 12
nidoking 11
clefairy 13
clefable 12
vulpix 13
ninetales 7
jigglypuff 11
wigglytuff 12
zubat 11
golbat 11
oddish 10
gloom 14
vileplume 13
paras 12
parasect 11
venonat 14
venomoth 11
diglett 4
dugtrio 12
meowth 13
persian 12
psyduck 10
golduck 13
mankey 14
primeape 15
growlithe 11
arcanine 14
poliwag 11
poliwhirl 9
poliwrath 9
abra 8
kadabra 14
alakazam 12
machop 13
machoke 13
machamp 13
bellsprout 13
weepinbell 14
victreebel 14
tentacool 14
tentacruel 14
geodude 6
graveler 6
golem 12
ponyta 11
rapidash 11
slowpoke 12
slowbro 13
magnemite 14
magneton 14
farfetchd 14
doduo 9
dodrio 15
seel 11
dewgong 7
grimer 9
muk 8
shellder 9
cloyster 9
gastly 8
haunter 10
gengar 10
onix 6
drowzee 9
hypno 9
krabby 10
kingler 10
voltorb 9
electrode 10
exeggcute 9
exeggutor 14
cubone 13
marowak 14
hitmonlee 12
hitmonchan 13
lickitung 9
koffing 12
weezing 13
rhyhorn 8
rhydon 11
chansey 9
tangela 9
kangaskhan 14
horsea 10
seadra 10
goldeen 11
seaking 12
staryu 12
starmie 12
mr_mime 12
scyther 12
jynx 15
electabuzz 10
magmar 12
pinsir 9
tauros 13
magikarp 13
gyarados 15
lapras 15
ditto 6
eevee 9
vaporeon 15
jolteon 11
flareon 10
porygon 11
omanyte 12
omastar 12
kabuto 11
kabutops 9
aerodactyl 7
snorlax 14
articuno 12
zapdos 10
moltres 14
dratini 9
dragonair 12
dragonite 13
mewtwo 9
mew 6
chikorita 11
bayleef 14
meganium 14
cyndaquil 13
quilava 14
typhlosion 14
totodile 11
croconaw 13
feraligatr 14
sentret 12
furret 11
hoothoot 13
noctowl 13
ledyba 12
ledian 14
spinarak 14
ariados 14
crobat 9
chinchou 13
lanturn 14
pichu 11
cleffa 11
igglybuff 9
togepi 12
togetic 11
natu 14
xatu 15
mareep 14
flaaffy 13
ampharos 12
bellossom 13
marill 10
azumarill 10
sudowoodo 11
politoed 14
hoppip 10
skiploom 11
jumpluff 13
aipom 12
sunkern 13
sunflora 12
yanma 11
wooper 9
quagsire 9
espeon 9
umbreon 10
murkrow 12
slowking 13
misdreavus 13
unown 5
wobbuffet 8
girafarig 13
pineco 5
forretress 10
dunsparce 13
gligar 12
steelix 7
snubbull 12
granbull 11
qwilfish 12
scizor 11
shuckle 12
heracross 11
sneasel 14
teddiursa 12
ursaring 13
slugma 9
magcargo 12
swinub 9
piloswine 12
corsola 9
remoraid 9
octillery 12
delibird 13
mantine 13
skarmory 12
houndour 11
houndoom 12
kingdra 12
phanpy 9
donphan 13
porygon2 12
stantler 12
smeargle 12
tyrogue 12
hitmontop 12
smoochum 12
elekid 9
magby 10
miltank 15
blissey 9
raikou 13
entei 14
suicune 14
larvitar 9
pupitar 9
tyranitar 11
lugia 9
ho_oh 13
celebi 11
treecko 14
grovyle 14
sceptile 13
torchic 12
combusken 14
blaziken 14
mudkip 14
marshtomp 14
swampert 14
poochyena 14
mightyena 11
zigzagoon 14
linoone 11
wurmple 13
silcoon 9
beautifly 13
cascoon 8
dustox 14
lotad 13
lombre 12
ludicolo 15
seedot 11
nuzleaf 14
shiftry 13
taillow 15
swellow 15
wingull 14
pelipper 15
ralts 11
kirlia 13
gardevoir 12
surskit 12
masquerain 14
shroomish 11
breloom 15
slakoth 14
vigoroth 15
slaking 14
nincada 15
ninjask 13
shedinja 10
whismur 12
loudred 14
exploud 15
makuhita 12
hariyama 15
azurill 11
nosepass 11
skitty 11
delcatty 15
sableye 13
mawile 14
aron 9
lairon 12
aggron 12
meditite 13
medicham 13
electrike 10
manectric 13
plusle 10
minun 13
volbeat 15
illumise 15
roselia 15
gulpin 11
swalot 14
carvanha 13
sharpedo 14
wailmer 15
wailord 13
numel 15
camerupt 13
torkoal 12
spoink 13
grumpig 15
spinda 10
trapinch 10
vibrava 14
flygon 15
cacnea 14
cacturne 12
swablu 12
altaria 12
zangoose 15
seviper 14
lunatone 14
solrock 14
barboach 12
whiscash 15
corphish 13
crawdaunt 15
baltoy 7
claydol 12
lileep 12
cradily 12
anorith 14
armaldo 14
feebas 13
milotic 14
castform 9
kecleon 15
shuppet 12
banette 12
duskull 13
dusclops 11
tropius 15
chimecho 13
absol 11
wynaut 11
snorunt 15
glalie 13
spheal 12
sealeo 15
walrein 12
clamperl 14
huntail 14
gorebyss 12
relicanth 13
luvdisc 9
bagon 11
shelgon 12
salamence 13
beldum 10
metang 13
metagross 13
regirock 13
regice 10
registeel 13
latias 14
latios 14
kyogre 14
groudon 14
rayquaza 12
jirachi 12
deoxys 14
teamrocket 6
starterspairs 6
startersDark 6
pals
alphabet 26
alphabet2 26
glasbey 32
kelly 22
polychrome 36
stepped 24
tol 12
watlington 16
Polychrome
alphabet 26
dark 24
glasbey 32
green_armytage 26
kelly 22
light 24
palette36 36
rcartocolor
ag_Sunset 7
ag_GrnYl 7
Tropic 7
Temps 7
TealRose 7
Geyser 7
Fall 7
Earth 7
ArmyRose 7
Vivid 12
Safe 12
Prism 12
Pastel 12
Bold 12
Antique 12
TealGrn 7
Teal 7
SunsetDark 7
Sunset 7
RedOr 7
PurpOr 7
Purp 7
PinkYl 7
Peach 7
OrYel 7
Mint 7
Magenta 7
Emrld 7
DarkMint 7
BurgYl 7
Burg 7
BrwnYl 7
BluYl 7
BluGrn 7
RColorBrewer
BrBG 11
PiYG 11
PRGn 11
PuOr 11
RdBu 11
RdGy 11
RdYlBu 11
RdYlGn 11
Spectral 11
Accent 8
Dark2 8
Paired 12
Pastel1 9
Pastel2 8
Set1 9
Set2 8
Set3 12
Blues 9
BuGn 9
BuPu 9
GnBu 9
Greens 9
Greys 9
Oranges 9
OrRd 9
PuBu 9
PuBuGn 9
PuRd 9
Purples 9
RdPu 9
Reds 9
YlGn 9
YlGnBu 9
YlOrBr 9
YlOrRd 9
Redmonder
dPBIYlBu 11
dPBIYlPu 11
dPBIPuGn 11
dPBIPuOr 11
dPBIRdBu 11
dPBIRdGy 11
dPBIRdGn 11
qMSOStd 10
qMSO12 8
qMSO15 8
qMSOBuWarm 8
qMSOBu 8
qMSOBu2 8
qMSOBuGn 8
qMSOGn 8
qMSOGnYl 8
qMSOYl 8
qMSOYlOr 8
qMSOOr 8
qMSOOrRd 8
qMSORdOr 8
qMSORd 8
qMSORdPu 8
qMSOPu 8
qMSOPu2 8
qMSOMed 8
qMSOPap 8
qMSOMrq 8
qMSOSlp 8
qMSOAsp 8
qPBI 8
sPBIGn 9
sPBIGy1 9
sPBIRd 9
sPBIYl 9
sPBIGy2 9
sPBIBu 9
sPBIOr 9
sPBIPu 9
sPBIYlGn 9
sPBIRdPu 9
tidyquant
tq_light 12
tq_dark 12
tq_green 12
wesanderson
BottleRocket1 7
BottleRocket2 5
Rushmore1 5
Rushmore 5
Royal1 4
Royal2 5
Zissou1 5
Darjeeling1 5
Darjeeling2 5
Chevalier1 4
FantasticFox1 5
Moonrise1 4
Moonrise2 4
Moonrise3 5
Cavalcanti1 5
GrandBudapest1 4
GrandBudapest2 4
IsleofDogs1 6
IsleofDogs2 5
yarrr
basel 10
pony 9
xmen 8
decision 6
southpark 6
google 4
eternal 7
evildead 6
usualsuspects 7
ohbrother 7
appletv 6
brave 5
bugs 5
cars 5
nemo 5
rat 5
up 5
espresso 5
ipod 7
info 9
info2 14
The paletteer package is maintained by Emil Hvitfeldt. More information can be found on the paletteer site and on the CRAN info page.