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 plusieurs 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 (ou l’opérateur | dans une formule). 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 contiendra d’information, 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.20: Croissance de poulets en utilisant quatre aliments différents.

Le graphique à la Fig. 4.20 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.21: 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 (list()) de graphiques de type chart() à assembler, et il est possible d’en combiner les légendes à l’aide de common.legend = TRUE.

# 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.22: 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.

À vous de jouer !

Effectuez maintenant les exercices du tutoriel A04Ld_fig_composees (Graphiques composés).

BioDataScience1::run("A04Ld_fig_composees")

Réalisez l’assignation A04Ga_graphe_avance.

Si vous êtes un utilisateur non enregistré ou que vous travaillez en dehors d’un cours, faites un “fork” de ce dépôt.

Voyez les explications dans le fichier README.md.

Pour en savoir plus