library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
labs(
title = "Tooth growth by vitamin C dose",
x = "Dose (mg/day)", y = "Tooth length"
) +
theme_minimal()
Ajoutez et mettez en forme un titre, un sous-titre et une légende de graphique — en direct dans votre navigateur
Apprenez à ajouter un titre à un graphique ggplot2 en R — définissez-le avec labs(title=) ou ggtitle(), ajoutez un sous-titre et une légende, centrez le titre, répartissez-le sur plusieurs lignes et modifiez sa taille de police, sa couleur et son style. Modifiez et exécutez le code en direct, sans aucune installation.
20 juin 2026
7 juillet 2026
labs(title = "...") — ou le raccourci ggtitle("...").labs() définit aussi un sous-titre (subtitle =) et une légende (caption =, pratique pour une source de données).\n ; contrôlez l’espacement avec lineheight.theme(plot.title = element_text(hjust = 0.5)) (hjust = 0 à gauche, 1 à droite).size, colour, face (plain/italic/bold/bold.italic) — à l’intérieur de element_text().element_blank() (ou laissez-le simplement en dehors de labs()).Un titre clair, c’est ce qui transforme un graphique en une figure aboutie : il indique au lecteur ce qu’il regarde avant même qu’il n’analyse un seul axe. En R, ggplot2 vous permet d’ajouter un titre, un sous-titre et une légende avec un seul appel à labs(), puis de mettre en forme chacun d’eux avec theme(). Cette leçon les construit pas à pas — définir le texte, répartir un titre long sur plusieurs lignes, le centrer, retravailler la police et le supprimer — et chaque figure est rendue ici même pour que vous puissiez la réexécuter ou la modifier en direct.
Nous utilisons le jeu de données intégré ToothGrowth : la longueur des cellules odontoblastes (len) chez des cobayes ayant reçu 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). Le graphique est une boîte à moustaches, mais tout ce qui suit fonctionne sur n’importe quel graphique ggplot2.
La façon la plus simple d’ajouter un titre est labs(title = "..."). Elle attache le texte au-dessus du graphique sans rien changer d’autre.

ggtitle() est un raccourci qui fait le même travail — ggtitle("Tooth growth by vitamin C dose") est équivalent à labs(title = ...). Utilisez celui qui se lit le mieux dans votre pipeline ; labs() est pratique parce qu’il définit les étiquettes des axes dans le même appel.
Un sous-titre se place juste sous le titre, en plus petits caractères — parfait pour un résumé d’une ligne ou l’idée à retenir. Définissez-le avec labs(subtitle = "...") (ou passez-le comme deuxième argument à ggtitle()).
Une légende s’affiche en petit en bas à droite du graphique — l’endroit idéal pour une source de données, une note ou un crédit. Définissez-la avec labs(caption = "...").
Lorsqu’un titre est trop long pour une seule ligne, insérez un caractère de saut de ligne \n à l’endroit où vous voulez la rupture. Contrôlez l’espacement entre les lignes avec lineheight à l’intérieur de element_text().
library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
labs(
title = "Tooth growth in guinea pigs\nby vitamin C dose (0.5, 1, 2 mg/day)",
x = "Dose (mg/day)", y = "Tooth length"
) +
theme_minimal() +
theme(plot.title = element_text(lineheight = 1.1))
Par défaut, ggplot2 aligne le titre à gauche. Centrez-le en définissant la justification horizontale hjust = 0.5 sur l’élément plot.title. Utilisez hjust = 0 pour le pousser tout à gauche, hjust = 1 pour le bord droit.
Chaque élément de titre se met en forme à l’intérieur de element_text(). Les arguments les plus utilisés sont size (en points), colour et face — "plain", "italic", "bold" ou "bold.italic". Définissez-les indépendamment sur plot.title, plot.subtitle et plot.caption.
library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
labs(
title = "Tooth growth by vitamin C dose",
subtitle = "Cell length rises with each increase in dose",
caption = "Source: ToothGrowth dataset",
x = "Dose (mg/day)", y = "Tooth length"
) +
theme_minimal() +
theme(
plot.title = element_text(size = 16, colour = "#3a86d4", face = "bold"),
plot.subtitle = element_text(size = 12, colour = "grey40", face = "italic"),
plot.caption = element_text(size = 9, face = "italic")
)
La légende est par défaut alignée à droite ; déplacez-la vers le bord gauche avec hjust = 0 (ou n’importe où entre les deux) sur l’élément plot.caption.
library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
labs(
title = "Tooth growth by vitamin C dose",
caption = "Source: ToothGrowth dataset",
x = "Dose (mg/day)", y = "Tooth length"
) +
theme_minimal() +
theme(plot.caption = element_text(hjust = 0))
Si un thème ajoute un titre dont vous ne voulez pas, effacez-le avec element_blank() sur plot.title. (Vous pouvez aussi simplement laisser title = en dehors de labs().)

Cette leçon couvre le titre, le sous-titre et la légende du graphique. Pour modifier les titres des axes (les étiquettes x/y), voir le guide des axes ggplot2 ; pour le titre de la légende de couleurs, voir le guide de la légende ggplot2 ; pour la mise en forme globale du texte sur toute la figure, le guide des thèmes ggplot2.
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 sur les titres et les légendes arrive dans la série Python.
Demandez à Prova « comment déplacer mon titre et mon sous-titre pour qu’ils soient tous deux centrés au-dessus de ce graphique ? » — elle répond avec du code que vous pouvez exécuter, donc l’explication est reproductible. The runtime is the judge. Ask Prova →
Ajoutez-le avec labs(title = "..."), ou utilisez le raccourci ggtitle("...") — les deux placent le texte au-dessus du graphique. labs() est pratique parce qu’il peut définir le titre, le subtitle, la caption et les étiquettes des axes dans le même appel.
Le titre est aligné à gauche par défaut ; centrez-le en définissant theme(plot.title = element_text(hjust = 0.5)). Utilisez hjust = 0 pour le pousser tout à gauche et hjust = 1 pour l’aligner sur le bord droit.
Ils font le même travail — ggtitle("My title") est équivalent à labs(title = "My title"). Préférez labs() lorsque vous voulez aussi définir le subtitle, la caption ou les étiquettes des axes en un seul appel ; ggtitle() accepte le sous-titre comme deuxième argument.
Insérez un caractère de saut de ligne \n dans la chaîne du titre à l’endroit où vous voulez la rupture, par exemple title = "First line\nSecond line". Contrôlez l’espacement entre les lignes avec lineheight à l’intérieur de theme(plot.title = element_text(lineheight = 1.1)).
Mettez-le en forme à l’intérieur de element_text() sur l’élément plot.title : theme(plot.title = element_text(size = 16, colour = "#3a86d4", face = "bold")). face accepte "plain", "italic", "bold" ou "bold.italic", et vous pouvez mettre en forme plot.subtitle et plot.caption indépendamment de la même façon.
Complétez le code pour que le titre se présente comme un en-tête en gras et centré au-dessus du graphique.
library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
labs(title = "Tooth growth by vitamin C dose") +
theme_minimal() +
theme(plot.title = element_text(face = "bold", hjust = 0.5))
Vous avez ajouté un titre à un graphique ggplot2 avec labs(title = ) et le raccourci ggtitle(), ajouté un sous-titre et une légende, réparti un titre long sur plusieurs lignes, centré celui-ci avec hjust, retravaillé la police (taille, couleur, style), repositionné la légende et supprimé un titre avec element_blank(). Ensuite, affinez les étiquettes des axes et le titre de la légende, ou 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 = {Titre, sous-titre et légende ggplot2 en R},
date = {2026-06-20},
url = {https://www.datanovia.com/learn/data-visualization/ggplot2/title-subtitle-caption},
langid = {fr}
}