4.4 Figures composées

Il arrive fréquemment de vouloir combiner plusieurs graphiques dans une même figure. Plusieurs fonctions sont à votre disposition pour cela. Il faut tout d’abord distinguer deux types de figures multi-graphiques :

  1. Soit il s’agit d’un seul graphique que vous souhaitez subdiviser par rapport à une ou des variables facteurs.
  2. Soit il s’agit de graphiques indépendants que vous souhaitez assembler dans une même figure parce que les données ont un lien entre elles, ou parce que ces graphiques sont complémentaires pour comprendre les données.

Dans le premier cas, les fonctions facet_XXX() comme facet_grid() peuvent être employées. Dans le second cas, la fonction combine_charts() est l’une des alternatives possibles.

4.4.1 Facettes

L’une des règles les plus importantes que vous devez impérativement garder à l’esprit lors de la réalisation de vos graphiques est la simplicité. Plus votre graphique va contenir d’information au plus il sera compliqué à décoder par vos lecteurs.

# Importation de données relative à la croissance de poulets
(chick_weight <- read("ChickWeight", package = "datasets"))
# # A tibble: 578 x 4
#    weight  Time Chick Diet 
#     <dbl> <dbl> <ord> <fct>
#  1    42.    0. 1     1    
#  2    51.    2. 1     1    
#  3    59.    4. 1     1    
#  4    64.    6. 1     1    
#  5    76.    8. 1     1    
#  6    93.   10. 1     1    
#  7   106.   12. 1     1    
#  8   125.   14. 1     1    
#  9   149.   16. 1     1    
# 10   171.   18. 1     1    
# # ... with 568 more rows
# Réalisation du graphique (points semi-transparents)
chart(data = chick_weight, weight ~ Time %col=% Diet) +
  geom_point(alpha = 0.5) +
  labs(x = "Age [j]", y = "Masse [g]")
Croissance de poulets en utilisant quatre aliments différents.

Figure 4.10: Croissance de poulets en utilisant quatre aliments différents.

Le graphique à la Fig. 4.10 est mal adapté pour montrer les différences entre les quatre aliments : tous les points sont entremêlés. Il peut typiquement être simplifié en utilisant des facettes pour représenter les résultats relatifs aux différents régimes alimentaires sur des graphiques séparés. L’information est la même mais la lecture est beaucoup plus aisée.

chart(data = chick_weight, weight ~ Time | Diet) +
  geom_point(alpha = 0.5) +
  labs(x = "Age [j]", y = "Masse [g]")
Croissance de poulets en utilisant quatre aliments différents (1-4).

Figure 4.11: Croissance de poulets en utilisant quatre aliments différents (1-4).

Vous observez que les échelles en abscisse et en ordonnée sont similaires sur tous les graphiques. Cela permet une meilleure comparaison. Notez toutefois que, plus le nombre de facettes augmente, plus chaque graphique individuel devient petit. Faites attention à ne pas finir avec des graphiques individuels tellement petits qu’ils en deviennent illisibles !

4.4.2 Graphiques assemblés

La fonction combine_charts() permet de combiner plusieurs graphiques dans une figure unique. Nous l’avons déjà utilisée à plusieurs reprises. Cette fonction attend une liste de graphiques de type chart() à assembler.

# Importation des données
urchin <- read("urchin_bio", package = "data.io", lang = "FR")
# Réalisation des graphiques
a <- chart(data = urchin, weight ~ height %col=% origin) +
  geom_point()

b <- chart(data = urchin, weight ~ solid_parts %col=% origin) +
  geom_point()

# Combinaison des graphiques dans une même figure
combine_charts(list(a, b), common.legend = TRUE)
A) Masse d'oursins en fonction de leur taille  et de leur origine. B) Masse totale en fonction de la masse des parties solides de ces mêmes oursins.

Figure 4.12: A) Masse d’oursins en fonction de leur taille et de leur origine. B) Masse totale en fonction de la masse des parties solides de ces mêmes oursins.

Il existe d’autres fonctions permettant de combiner plusieurs graphiques comme plot_grid() du package cowplot, mais avec combine_charts() vous pourrez déjà faire beaucoup. De plus, un libellé sous forme d’une lettre majuscule est automatiquement associé à chaque sous-région de la figure composée. Cela permet d’y faire plus facilement référence dans le texte et/ou dans la légende.

Pour en savoir plus