Titre, sous-titre et légende ggplot2 en R

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.

Date de publication

20 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Ajoutez un titre principal avec 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).
  • Répartissez un titre long sur plusieurs lignes avec \n ; contrôlez l’espacement avec lineheight.
  • Le titre est aligné à gauche par défaut — centrez-le avec theme(plot.title = element_text(hjust = 0.5)) (hjust = 0 à gauche, 1 à droite).
  • Mettez en forme n’importe quel élément de titre — size, colour, face (plain/italic/bold/bold.italic) — à l’intérieur de element_text().
  • Supprimez un titre avec element_blank() (ou laissez-le simplement en dehors de labs()).
  • Chaque graphique ci-dessous est rendu pour vous — puis ajustez n’importe quel exemple en direct dans le bac à sable.
Obtenez le livre — GGPlot2 Essentials (PDF)

Introduction

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.

Ajouter un titre principal

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.

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()

ggplot2 box plot of tooth length by dose with a main title reading Tooth growth by vitamin C dose above the plot.

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.

library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
  geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
  ggtitle("Tooth growth by vitamin C dose") +
  labs(x = "Dose (mg/day)", y = "Tooth length") +
  theme_minimal()

ggplot2 box plot of tooth length by dose with the same main title added via the ggtitle shortcut.

Ajouter un sous-titre

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()).

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",
    x = "Dose (mg/day)", y = "Tooth length"
  ) +
  theme_minimal()

ggplot2 box plot with a main title and a smaller subtitle beneath it noting that length rises with dose.

Ajouter une légende

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 = "...").

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 (R datasets package)",
    x = "Dose (mg/day)", y = "Tooth length"
  ) +
  theme_minimal()

ggplot2 box plot with a main title and a small caption in the bottom-right reading Source: ToothGrowth dataset.

Répartir un titre long sur plusieurs lignes

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))

ggplot2 box plot with a two-line title; the long title wraps onto a second line with a comfortable line gap.

Centrer le titre

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.

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() +
  theme(plot.title = element_text(hjust = 0.5))

ggplot2 box plot with the main title horizontally centered above the plot rather than left-aligned.

Mettre en forme la police : taille, couleur, style

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")
  )

ggplot2 box plot with a large bold azure title, an italic grey subtitle, and a small italic caption.

Repositionner la légende

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))

ggplot2 box plot with the caption moved from the bottom-right to the bottom-left of the plot.

Supprimer un titre

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().)

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() +
  theme(plot.title = element_blank())

ggplot2 box plot with no title; the title slot is removed and the plot area starts at the top.

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.

Essayez en direct

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.

🟢 Avec un agent IA

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 →

Questions fréquentes

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.

Testez vos connaissances

Complétez le code pour que le titre se présente comme un en-tête en gras et centré au-dessus du graphique.

# Use element_text() with two arguments: face = "bold" and hjust = 0.5
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))
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))

Conclusion

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.

Leçons connexes

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.

Obtenir le livre (PDF) →Les leçons restent gratuites en ligne.
Cette page vous a-t-elle été utile ?

Prouvez que vous savez le faire. Maîtrisez toute la série ggplot2 — suivez votre parcours, construisez des projets et obtenez un certificat.

Commencer gratuitement →

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

Passer à Pro →

✓ Vous êtes Pro — continuez. The runtime is the judge.

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.

Partager cette pageXLinkedInRedditHN
Note

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.

Réutilisation

Citation

BibTeX
@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}
}
Veuillez citer ce travail comme suit :
“Titre, sous-titre et légende ggplot2 en R.” 2026. June 20. https://www.datanovia.com/learn/data-visualization/ggplot2/title-subtitle-caption.