library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
labs(x = "Dose (mg/day)", y = "Tooth length") +
theme_minimal()
Tracer, grouper et personnaliser une boîte à moustaches ggplot2 — en direct dans votre navigateur
Apprenez à construire une boîte à moustaches en R avec ggplot2 — tracez-la avec geom_boxplot(), comparez des groupes, ajoutez des points dispersés et des encoches, et remplissez par groupe. Modifiez et exécutez le code en direct, sans installation.
20 juin 2026
7 juillet 2026
x et les valeurs à y, puis vous tracez avec geom_boxplot().geom_jitter() par-dessus les boîtes.notch = TRUE pour un test visuel approximatif permettant de voir si deux médianes diffèrent.scale_fill_viridis_d()) ; fill correspond à l’intérieur, colour au contour.fill pour comparer les groupes côte à côte (boîtes décalées).theme(legend.position = ...), et définissez son ordre via les niveaux du facteur.Une boîte à moustaches (ou diagramme en boîte) est le moyen le plus rapide de comparer une variable numérique entre groupes : elle montre la médiane, l’écart interquartile et les valeurs aberrantes d’un coup d’œil. En R, ggplot2 en trace une avec une seule couche — geom_boxplot() — et facilite l’ajout de points, d’encoches et de couleurs. Cette leçon en construit une étape par étape ; les figures sont rendues ici même, et vous pouvez réexécuter ou modifier chacune d’elles en direct.
Nous utilisons le jeu de données intégré ToothGrowth : la longueur des cellules odontoblastes (len) chez des cochons d’Inde recevant de la vitamine C à trois doses (dose : 0.5, 1 ou 2 mg/jour) via deux méthodes d’administration (supp : jus d’orange OJ ou acide ascorbique VC).
Associez dose à l’axe des x et len à l’axe des y, puis ajoutez une seule couche de boîte à moustaches. Comme dose est stockée sous forme de nombre, encapsulez-la dans factor() pour que ggplot2 trace une boîte par groupe.
Une boîte masque le nombre d’observations qui se cachent derrière elle. Superposez geom_jitter() par-dessus pour montrer chaque point, légèrement décalé latéralement afin qu’ils ne se chevauchent pas. Définissez outlier.shape = NA sur la boîte à moustaches pour que les valeurs aberrantes ne soient pas tracées deux fois.
Une encoche marque un intervalle de confiance autour de la médiane. Lorsque deux encoches ne se chevauchent pas, c’est une preuve visuelle approximative que les médianes diffèrent.
La boîte marque la médiane. Pour montrer également la moyenne, superposez stat_summary() — utile lorsque vous voulez les deux mesures de tendance centrale d’un coup d’œil.
Pour colorer chaque boîte selon son groupe, associez la variable de groupement à fill. Utilisez une palette adaptée au daltonisme comme viridis afin que la figure reste lisible pour tout le monde, en couleur ou à l’impression.

Deux attributs esthétiques distincts contrôlent la couleur : fill peint l’intérieur de la boîte, colour le contour. Définissez-les indépendamment — ici un contour sombre avec un remplissage adouci (alpha) :
Associez une seconde variable à fill pour comparer les groupes au sein de chaque dose. ggplot2 place les boîtes côte à côte (décalées) automatiquement.
Déplacez la légende avec theme(legend.position = ...) — "top", "bottom", "left", "right", ou "none" pour la masquer. Contrôlez l’ordre des groupes en définissant les niveaux du facteur. Pour l’ensemble complet des réglages de légende (titre, étiquettes, style, placement à l’intérieur du graphique), consultez le guide des légendes ggplot2.
library(ggplot2)
# reorder the supplement groups (VC before OJ) on a local copy — no global side effect
tg <- ToothGrowth
tg$supp <- factor(tg$supp, levels = c("VC", "OJ"))
ggplot(tg, aes(x = factor(dose), y = len, fill = supp)) +
geom_boxplot() +
scale_fill_viridis_d() +
labs(x = "Dose (mg/day)", y = "Tooth length", fill = "Supplement") +
theme_minimal() +
theme(legend.position = "top")
Les graphiques ci-dessus ont été rendus au moment de la construction. Envie d’expérimenter ? Modifiez le code et appuyez sur Run — il s’exécute dans votre navigateur via webR (sans serveur, sans installation).
Vous travaillez en Python ? Un guide matplotlib des boîtes à moustaches arrive bientôt dans la série Python.
Demandez à Prova « les encoches signifient-elles que les médianes sont significativement différentes ici ? » — elle répond avec du code que vous pouvez exécuter, donc l’explication est reproductible. The runtime is the judge. Ask Prova →
Associez la variable de groupement à x et les valeurs à y, puis ajoutez geom_boxplot(). Si la variable de groupement est stockée sous forme de nombre (comme dose), encapsulez-la dans factor() — par exemple aes(x = factor(dose), y = len) — pour que ggplot2 trace une boîte par niveau au lieu d’une seule boîte.
Superposez geom_jitter() après geom_boxplot() pour disperser latéralement les observations individuelles afin qu’elles ne se chevauchent pas, par exemple geom_jitter(width = 0.15, alpha = 0.5). Définissez outlier.shape = NA sur la boîte pour que les valeurs aberrantes ne soient pas tracées deux fois — une fois par la boîte et une fois par les points.
fill et colour dans geom_boxplot() ?
fill peint l’intérieur de la boîte tandis que colour définit le contour. Vous pouvez les définir indépendamment — par exemple geom_boxplot(colour = "grey30") avec scale_fill_viridis_d() donne un contour sombre par-dessus des couleurs de remplissage adoucies.
La boîte marque la médiane, pas la moyenne. Pour ajouter la moyenne, superposez stat_summary(fun = mean, geom = "point", shape = 23, size = 3, fill = "white"), qui trace un point à la moyenne de chaque groupe par-dessus les boîtes.
Utilisez theme(legend.position = ...) avec "top", "bottom", "left", "right", ou "none" pour la masquer entièrement. Pour changer l’ordre des groupes dans la légende, définissez les niveaux du facteur avec factor(x, levels = c(...)) avant de tracer.
Complétez le code pour que chaque boîte montre aussi ses observations individuelles sous forme de points dispersés.
Vous avez construit une boîte à moustaches ggplot2, superposé les données brutes avec des points dispersés, ajouté des encoches, coloré les boîtes par groupe avec une palette adaptée au daltonisme, comparé les groupes côte à côte avec fill, et soigné la légende. Ensuite, explorez le nuage de points pour les relations entre deux variables numériques, et le reste de la grammaire ggplot2.
Vous préférez un livre ? GGPlot2 Essentials est disponible en PDF téléchargeable — toutes les leçons de cette série, hors ligne et à vous.
Prouvez que vous savez le faire. Maîtrisez toute la série ggplot2 — suivez votre parcours, construisez des projets et obtenez un certificat.
Passez à Pro — Prova illimité sur vos propres données et un certificat vérifiable qui atteste la compétence.
dès 15 $/mois facturé annuellement
✓ Vous êtes Pro — continuez. The runtime is the judge.
Prêt à passer à la vitesse supérieure ?
Recevez les nouvelles leçons R & Python par e-mail
Pratique, reproductible, sans spam. Désinscription à tout moment.
Double opt-in. Nous ne partageons jamais votre e-mail.
Cette leçon est reproductible : les figures sont exécutées au moment de la construction (si elles s’affichent, le code fonctionne), et le bac à sable et le quiz se réexécutent en direct dans votre navigateur. The runtime is the judge.
@online{2026,
author = {},
title = {Boîte à moustaches en R : guide ggplot2},
date = {2026-06-20},
url = {https://www.datanovia.com/learn/data-visualization/ggplot2/boxplot},
langid = {fr}
}