ggplot2 couleurs : Changer les couleurs automatiquement et manuellement - Logiciel R et visualisation de données
L?objectif de cet article est de d?crire comment changer la couleur d?un graphique g?n?r? en utilisant le logiciel R et le package ggplot2. Une couleur peut ?tre sp?cifi?e soit par son nom (par exemple: ?red?) ou en code hexad?cimal (par exemple: ?#FF1234?). Les diff?rents syst?mes de couleurs disponibles dans R sont d?crits ? ce lien: Couleurs dans R.
Dans ce tutoriel R, vous allez apprendre ?:
- changer les couleurs par groupes (automatiquement ou manuellement)
- utiliser les palettes de couleurs Wes Anderson et RColorBrewer
- utiliser les gradients de couleurs
Pr?parer les donn?es
Les donn?es ToothGrowth et mtcars sont utilis?es dans les exemples ci-dessous:
# Convertir les colonnes dose et cyl en "facteur"
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
mtcars$cyl <- as.factor(mtcars$cyl)
head(ToothGrowth)
## len supp dose
## 1 4.2 VC 0.5
## 2 11.5 VC 0.5
## 3 7.3 VC 0.5
## 4 5.8 VC 0.5
## 5 6.4 VC 0.5
## 6 10.0 VC 0.5
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
Assurez-vous que les variables dose et cyl soient converties en variables de types ?factor? en utilisant le script de R ci-dessus.
Graphes simples
library(ggplot2)
# Box plot
ggplot(ToothGrowth, aes(x=dose, y=len)) +geom_boxplot()
# Nuage de points
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()
Utiliser une seule couleur
# box plot
ggplot(ToothGrowth, aes(x=dose, y=len)) +
geom_boxplot(fill='#A4A4A4', color="darkred")
# Nuage de point
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(color='darkblue')
Changer les couleurs par groupes
Couleurs par d?faut
Le code R suivant modifie la couleur du graphique en fonction des niveaux de dose:
# Box plot
bp<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=dose)) +
geom_boxplot()
bp
# Nuage de points
sp<-ggplot(mtcars, aes(x=wt, y=mpg, color=cyl)) + geom_point()
sp
La luminosit? (l) et la chrominance (c, intensit? de la couleur) de la couleur par d?faut (hue) peuvent ?tre modifi?es en utilisant les fonctions scale_hue comme suit:
# Box plot
bp + scale_fill_hue(l=40, c=35)
# Nuage de points
sp + scale_color_hue(l=40, c=35)
Notez que les valeurs par d?faut pour l et c sont les suivantes: l = 65, c = 100.
Changer les couleurs manuellement
Des palettes de couleurs personnalis?es peuvent ?tre sp?cifi?es en utilisant les fonctions :
- scale_fill_manual() pour un box plot, bar plot, violin plot, etc
- scale_color_manual() pour des graphiques lin?aires, ou des nuages de points
# Box plot
bp + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# Nuage de points
sp + scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))
Notez que, l?argument breaks peut ?tre utilis? pour contr?ler l?apparence de la l?gende. Ceci est aussi vrai pour les autres fonctions scale_xx().
# Box plot
bp + scale_fill_manual(breaks = c("2", "1", "0.5"),
values=c("red", "blue", "green"))
# Nuage de points
sp + scale_color_manual(breaks = c("8", "6", "4"),
values=c("red", "blue", "green"))
Lire plus sur les couleurs ici : Couleurs dans R.
Utiliser les palettes de couleurs RColorBrewer
Les palettes de couleurs disponibles dans le package RColorBrewer sont d?crites ici: Couleurs dans R.
# Box plot
bp + scale_fill_brewer(palette="Dark2")
# Nuage de points
sp + scale_color_brewer(palette="Dark2")
Les palettes de couleurs disponibles dans le package RColorBrewer sont:
Utiliser les palettes de couleurs Wes Anderson
Installer et charger les palettes de couleurs comme suit:
# Installer
install.packages("wesanderson")
# Charger
library(wesanderson)
Les palettes de couleurs disponibles sont:
library(wesanderson)
# Box plot
bp+scale_fill_manual(values=wes_palette(n=3, name="GrandBudapest"))
# Nuage de points
sp+scale_color_manual(values=wes_palette(n=3, name="GrandBudapest"))
Utiliser la palette de couleurs grises
Les fonctions ? utiliser sont:
- scale_colour_grey() pour les points, lignes, etc
- scale_fill_grey() pour les box plots, bar plots, violin plots, etc
# Box plot
bp + scale_fill_grey() + theme_classic()
# Nuage de points
sp + scale_color_grey() + theme_classic()
Changer les valeurs de gris :
# Box plot
bp + scale_fill_grey(start=0.8, end=0.2) + theme_classic()
# Nuage de points
sp + scale_color_grey(start=0.8, end=0.2) + theme_classic()
Notez que, les valeurs par d?faut pour les arguments start et end sont: start = 0.2, end = 0.8
Couleurs continues
Le graphique peut ?tre color? en fonction des valeurs d?une variable continue, en utilisant les fonctions:
- scale_color_gradient(), scale_fill_gradient() pour des gradients de couleurs s?quentiels
- scale_color_gradient2(), scale_fill_gradient2() pour des gradients divergents
- scale_color_gradientn(), scale_fill_gradientn() pour un gradient entre n couleurs
Gradients de couleurs pour un graphique en nuage de points
Les graphiques sont color?s en utilisant la variable continue qsec:
# Colorer en fonction de la valeur de qsec
sp2<-ggplot(mtcars, aes(x=wt, y=mpg, color=qsec)) + geom_point()
sp2
# Changer les couleurs basse et haute
# Gradient sequentiel
sp2+scale_color_gradient(low="blue", high="red")
# Gradients divergents
mid<-mean(mtcars$qsec)
sp2+scale_color_gradient2(midpoint=mid, low="blue", mid="white",
high="red" space = "Lab")
Gradients de couleurs pour histogrammes
set.seed(1234)
x <- rnorm(200)
# Histogramme
hp<-qplot(x =x, fill=..count.., geom="histogram")
hp
# Gradient s?quentiel
hp+scale_fill_gradient(low="blue", high="red")
Notez que, les fonctions scale_color_continuous() et scale_fill_continuous() peuvent ?tre utilis?es aussi pour les gradients de couleurs.
Gradients entre n couleurs
# Nuage de points
# Colorer les points en fonction de la variable mpg
sp3<-ggplot(mtcars, aes(x=wt, y=mpg, color=mpg)) + geom_point()
sp3
# Gradient entre n couleurs
sp3+scale_color_gradientn(colours = rainbow(5))
Infos
Cette analyse a ?t? faite en utilisant le logiciel R (ver. 3.1.2) et le package ggplot2 (ver. 1.0.0)
Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!
Recommended for You!
Click to follow us on Facebook:
Comment this article by clicking on "Discussion" button (top-right position of this page)