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

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…)
gg <- ggplot(ODD_graphique1) +
  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)
gg <- ggplot(ODD_graphique1) +
  geom_point(aes(x = log(Gross_Domestic_Product_GDP),
    y = log(Maternal_mortality_ratio),
    color = Continent))
gg + scale_color_gouv_discrete(name = "", palette = "pal_gouv_qual1") +
  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))

9.4 Exercice 3

En réutilisant le graphe obtenu à l’exercice 1 (rpls_aggrege_large.RData), y rajouter : - une palette gouvdown pour la couleur ; - la légende en bas ; - des libellés (axes et légende) parlant et un titre.

Résultat attendu :