Cet article décrit comment ajouter de l’espace entre les étiquettes, en haut du graphique (bar plot, box plot, etc), et la bordure du graphique lors de l’utilisation des fonctions facet de ggplot2 (facet_wrap()
et facet_grid()
).
Dans l’exemple de démonstration, nous allons créer un graphique prêt à être publié avec des p-values en utilisant le package ggpubr
, une extension de ggplot2
.
En ce qui concerne l’ajout d’espaces entre les étiquettes et la marge supérieure du graphique, vous apprendrez de multiples solutions, telles que:
- Modification des limites de l’axe des y
- Extension des échelles de l’axe des y en utilisant la combinaison des fonctions de ggplot2
scale_y_continuous()
andexpansion()
Sommaire:
Créer un graphique à facettes avec des étiquettes de p-value
library(ggpubr)
p <- ggboxplot(
ToothGrowth, x = "supp", y = "len",
color = "supp", palette = "jco",
facet.by = "dose", short.panel.labs = FALSE
) +
stat_compare_means(
method = "t.test", label = "p.format",
comparisons=list(c("OJ","VC"))
)
p
On peut constater que les p-values ne sont pas affichées complètement. Dans la section suivante, nous montrerons comment ajouter des espaces supplémentaires entre les étiquettes de p-value et la bordure supérieure du graphique.
Solution 1 : expansion de l’axe des y en utilisant la fonction ggplot2 expansion()
Fonction R clé:
expansion(mult = 0, add = 0)
mult
: vecteur multiplicatif de facteurs d’expansion de l’échelle. Si de longueur 1, les limites inférieure et supérieure de l’échelle sont élargies vers l’extérieur par le facteurmult
. Si de longueur 2, la limite inférieure est augmentée par les facteursmult[1]
et la limite supérieure par les facteursmult[2]
.add
: vecteur additif de constantes d’expansion de l’échelle. Si de longueur 1, les limites inférieure et supérieure de l’échelle sont élargies vers l’extérieur en ajoutant des unités. Si de longueur 2, la limite inférieure est étendue par des constantesadd[1]
et la limite supérieure par des constantesadd[2]
.
# Pas d'espace sous les graphiques
# Ajouter 10 % d'espace sur l'axe des y au-dessus des graphiques
p +
scale_y_continuous(expand = expansion(mult = c(0, 0.1)))
Solution 2 : utilisation de la fonction ggplot2 ylim()
Cela n’est utile que si les échelles sont similaires pour les différents pannels graphiques.
p + ylim (c(0, 45))
Conclusion
Cet article décrit comment ajouter de l’espace entre les étiquettes et la bordure supérieure de ggplot lors de l’utilisation des fonctions facet. Cela peut être facilement réalisé en utilisant les combinaisons suivantes scale_y_continuous()
and expansion()
. Notez qu’il est également possible de combiner scale_x_continuous()
et expansion()
pour ajouter des espaces entre les données et l’axe des x.
Version: English
No Comments