library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_violin(fill = "#3a86d4", alpha = 0.7) +
labs(x = "Dose (mg/day)", y = "Tooth length") +
theme_minimal()
trim = FALSETracez, résumez et personnalisez un graphique en violon ggplot2 — en direct dans votre navigateur
Apprenez à construire un graphique en violon en R avec ggplot2 — montrez la forme complète de la distribution avec geom_violin(), ajoutez des résumés moyenne/médiane, combinez-le avec une boîte à moustaches et colorez 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_violin().trim = FALSE pour montrer les queues complètes de la distribution.stat_summary() (moyenne ± écart-type) ou superposez une fine geom_boxplot() à l’intérieur pour la médiane et les quartiles.geom_jitter(), et colorez par groupe avec une scale_fill_viridis_d() adaptée au daltonisme.Un graphique en violon est le cousin plus expressif de la boîte à moustaches : au lieu de la seule médiane et des quartiles, il dessine la densité de la variable — une courbe de distribution reflétée — pour que vous puissiez voir la forme. Cela en fait l’outil adapté lorsqu’une distribution peut être bimodale ou asymétrique, ce qu’une boîte à moustaches masquerait. En R, ggplot2 en dessine un avec une seule couche, geom_violin(), et vous laisse superposer des résumés et des points bruts par-dessus. Cette leçon en construit un é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 cobayes recevant de la vitamine C à trois doses (dose : 0.5, 1 ou 2 mg/jour) selon deux modes 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 violon. Comme dose est stockée sous forme de nombre, enveloppez-la dans factor() pour que ggplot2 dessine un violon par groupe.
trim = FALSEPar défaut, ggplot2 tronque chaque violon à l’étendue des données. Définissez trim = FALSE pour étendre l’estimation de densité jusque dans les queues — souvent une image plus fidèle de la forme de la distribution.
Un violon montre la forme mais aucun chiffre. Superposez stat_summary() pour marquer la moyenne avec une plage de ± un écart-type — aucun package supplémentaire n’est nécessaire, juste des fonctions de base de R.
library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_violin(trim = FALSE, fill = "#3a86d4", alpha = 0.6) +
stat_summary(
fun = mean,
fun.min = function(x) mean(x) - sd(x),
fun.max = function(x) mean(x) + sd(x),
geom = "pointrange"
) +
labs(x = "Dose (mg/day)", y = "Tooth length") +
theme_minimal()
Pour la médiane et les quartiles, superposez une fine geom_boxplot() à l’intérieur du violon — une combinaison courante et riche en informations.
Superposez geom_jitter() pour montrer chaque observation, décalée latéralement pour que les points ne se chevauchent pas — pratique quand les tailles d’échantillon sont petites.
Associez la variable de regroupement à fill pour colorer chaque violon. Utilisez une palette viridis adaptée au daltonisme pour que la figure reste lisible par tous, en couleur ou à l’impression. fill peint l’intérieur ; colour définit le contour.
Associez une seconde variable à fill pour comparer les groupes au sein de chaque dose ; ggplot2 place les violons côte à côte (décalés) automatiquement.
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 du graphique en violon avec seaborn arrive dans la série Python.
Demandez à Prova « la distribution à la dose 2 est-elle bimodale, ou simplement large ? » — elle répond avec du code que vous pouvez exécuter sur ces données, pour que l’explication soit reproductible. The runtime is the judge. Ask Prova →
Une boîte à moustaches (geom_boxplot()) ne montre que la médiane et les quartiles, tandis qu’un graphique en violon (geom_violin()) dessine la densité complète des données reflétée de chaque côté, ce qui vous permet de voir la forme de la distribution — y compris si elle est asymétrique ou bimodale, ce qu’une boîte à moustaches masquerait.
Votre variable de regroupement est probablement stockée sous forme de nombre, si bien que ggplot2 traite x comme une variable continue. Enveloppez-la dans factor(), par exemple aes(x = factor(dose), y = len), pour dessiner un violon par groupe.
Pour la moyenne, superposez stat_summary(fun = mean, geom = "pointrange", ...) et utilisez fun.min/fun.max pour couvrir ± un écart-type. Pour la médiane et les quartiles, superposez une fine geom_boxplot(width = 0.1) à l’intérieur du violon.
Par défaut, ggplot2 tronque chaque violon à l’étendue des données ; geom_violin(trim = FALSE) étend l’estimation de densité jusque dans les queues, donnant souvent une image plus fidèle de la forme de la distribution.
Associez la variable de regroupement à fill (par exemple aes(fill = factor(dose))) pour que chaque violon soit coloré, et ajoutez scale_fill_viridis_d() pour une palette adaptée au daltonisme. fill peint l’intérieur tandis que colour définit le contour.
Complétez le code pour qu’une boîte à moustaches étroite soit dessinée à l’intérieur de chaque violon afin de montrer la médiane et les quartiles.
Vous avez construit un graphique en violon ggplot2, étendu ses queues avec trim = FALSE, ajouté un résumé moyenne ± écart-type, combiné avec une boîte à moustaches pour la médiane et les quartiles, superposé les données brutes et comparé des groupes avec une palette adaptée au daltonisme. Ensuite, comparez-le avec la boîte à moustaches (quartiles uniquement) et le nuage de points, et explorez 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 = {Graphique en violon en R : un guide ggplot2},
date = {2026-06-20},
url = {https://www.datanovia.com/learn/data-visualization/ggplot2/violin-plot},
langid = {fr}
}