Chapitre 9 Les scales
9.1 Les fonctions
Les fonctions scale permettent globalement de paramétrer les éléments rentrés dans l’aesthétic :
Si je veux un gradient de couleur fonction d’une variable continue : quelle palette de couleur je choisis, comment je cale mon dégradé en fonction de cette variable continue ?
Si je mets une variable continue en ordonnée, comment je définis le minimum et maximum de cet axe, sa position, les valeurs que j’affiche sur l’échelle…
L’ensemble des scales possibles peuvent se décrire sous la forme suivante:
scale_xx_yy
où xx
peut être un des paramètres de l’aesthétic :
xx | description |
---|---|
alpha | transparence |
color | couleur des lignes ou des points |
fill | couleurs des aires |
linetype | type de ligne (continue,pointillée,…) |
shape | forme des points |
size | aire des points |
x | variable de l’axe x |
y | variable de l’axe y |
Et yy
un type de paramétrage :
yy | description |
---|---|
continuous | gérer les variables continue |
discrete | gérer les variables discrètes |
date | gérer une variable au format date |
reverse | inverser l’axe |
log | convertir l’échelle d’une variable continue en échelle logarithmique |
log10 | convertir l’échelle d’une variable continue en échelle logarithmique décimale |
viridis | utiliser une palette de couleur viridis |
brewer | utiliser une palette de couleur brewer (variable discrète) |
distiller | utiliser une palette de couleur brewer (variable continue) |
gradient | utiliser un gradient de 2 couleurs |
gradient2 | utiliser un gradient divergent de 3 couleurs |
manual | utiliser une palette de couleur via un vecteur défini par l’utilisateur |
identity | utiliser telle quelle une variable du dataframe pour élaborer l’échelle (variable comprise entre 0 et 1 pour la transparence, variable de nom de couleurs…) |
<- ggplot(ODD_graphique1) +
gg geom_point(aes(x = log(Gross_Domestic_Product_GDP),
y = log(Maternal_mortality_ratio),
color = Continent))
+
gg scale_color_brewer(type = "qual")
# Pour visualiser les palettes disponibles
# RColorBrewer::display.brewer.all()
Par exemple on peut exploiter une fonction scale pour définir une échelle logarithmique sur un axe.
ggplot(ODD_graphique1) +
geom_point(aes(x = Gross_Domestic_Product_GDP,
y = Maternal_mortality_ratio,
color = Continent)) +
scale_color_brewer(type = "qual") +
scale_x_log10() +
scale_y_log10()
L’instruction limits
permet de forcer les bornes maximum et minimum. Elle prend en valeur un vecteur des deux bornes souhaitées.
+
gg scale_y_continuous(limits = c(NA, 10))
En mettant la borne minimum/maximum à NA permet de conserver la valeur minimum/maximum par défaut.
Les fonctions scale_xx_identity permettent d’utiliser telle quelle une variable créée spécifiquement pour la visualisation.
%>%
ODD_graphique2 mutate(couleur = if_else(Year != 2015, "black", "red")) %>%
ggplot(mapping = aes(x = Year, y = Value, color = couleur)) +
geom_point() +
scale_color_identity()
9.2 Scales - package gouvdown
La fonction scale_color_gouv_discrete() du package gouvdown
permet d’utiliser les palettes de couleurs de ce package.
Il en est de même pour scale_color_gouv_continuous
, scale_fill_gouv_discrete
et scale_fill_gouv_continuous
library(gouvdown)
<- ggplot(ODD_graphique1) +
gg geom_point(aes(x = log(Gross_Domestic_Product_GDP),
y = log(Maternal_mortality_ratio),
color = Continent))
+ scale_color_gouv_discrete(name = "", palette = "pal_gouv_qual1") +
gg theme_gouv()
On peut récupérer le code hex d’une couleur des palettes de la marque Etat avec la fonction gouv_colors()
.
gouv_colors("r4")
## r4
## "#E2E2E2"
9.3 Formatage spécifique
- Transformation en pourcentage;
scale_y_continuous(labels = scales::percent)
- Ajout du séparateur des milliers;
scale_y_continuous(labels = function(x) format(x, big.mark = " ", scientific = FALSE))
- Ajout du symbole €;
scale_y_continuous(labels = function(x) paste(x, " €"))
- Formatage des axes dates
scales_x_date()
et scales_y_date()
vous permettent de modifier le formatage de vos axes dates. Deux paramètres important vous seront utiles sur ces axes, date_labels
et date_breaks
modifient respectivement le libellé des dates et pas de temps qui défini les grilles.
Ici nous modifions le pas des date à 3 mois et mettons le libellé sous un format avec le nom du mois abrégé et l’année en 4 chiffres. Pour connaître toutes les écritures possibles d’une date, vous pouvez consulter cette page.
scale_x_date(date_breaks = "3 months",
date_labels = "%b %Y")
- Formatage du point de départ des axes : x = 0, y = 0
scale_x_continuous(expand = c(0, 0))
scale_y_continuous(expand = c(0, 0))