Ajouter un titre à un graphique en R : main, title() et étiquettes d’axes

Définissez le titre principal, le sous-titre et les étiquettes des axes x/y en R de base, puis stylisez leur couleur, leur police et leur taille

Ajoutez des titres à un graphique en R de base : le titre principal, le sous-titre et les étiquettes des axes x/y. Définissez-les avec main, sub, xlab et ylab, ou ajoutez-les à un graphique existant avec title(). Stylisez la couleur, la police et la taille avec col.main, font.main et cex.main, écrivez des titres sur plusieurs lignes, et placez du texte en marge avec mtext().

Date de publication

27 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Ajoutez un titre pendant que vous dessinez le graphique : passez main (titre), sub (sous-titre), xlab et ylab (étiquettes des axes) à plot(), barplot() ou n’importe quel graphique de base.
  • Ajoutez des titres à un graphique existant avec title() — les mêmes arguments, appelés après le graphique.
  • Stylisez chaque partie séparément : la couleur avec col.main/col.lab/col.sub, la police avec font.main (1 normal, 2 gras, 3 italique, 4 gras-italique), la taille avec cex.main/cex.lab/cex.sub.
  • Écrivez un titre sur plusieurs lignes avec \n ; placez du texte en marge indépendant avec mtext().
  • Définissez les styles une fois pour toute la session avec par().

Introduction

Vous avez dessiné un graphique et il n’affiche aucun titre, ou un axe étiqueté mtcars$mpg. Le R de base corrige cela de deux façons. Vous pouvez passer le texte du titre directement à la fonction de graphique — main, sub, xlab, ylab — et il est dessiné au moment de la création du graphique. Ou bien vous appelez title() ensuite pour ajouter des titres à un graphique déjà affiché.

Cette leçon couvre les deux : définir le titre principal, le sous-titre et les étiquettes des axes ; colorer et dimensionner chaque partie ; la fonction title() ; les titres sur plusieurs lignes ; et mtext() pour du texte dans les marges. Tout est en R de base — aucun package nécessaire.

Vous préférez la grammaire des graphiques ? ggplot2 gère les titres avec labs() et ggtitle() — voir titre et sous-titre dans la série ggplot2.

Titre principal et étiquettes des axes

Quatre arguments couvrent le cas courant. Passez-les à n’importe quel graphique de base que vous dessinez :

Argument Ce qu’il définit
main Le titre principal, centré au-dessus du graphique.
sub Un sous-titre, placé sous l’axe des x.
xlab L’étiquette de l’axe des x.
ylab L’étiquette de l’axe des y.

Les voici sur un nuage de points. Les mêmes arguments fonctionnent pour barplot(), boxplot(), hist() et les autres.

plot(mtcars$wt, mtcars$mpg,
     pch = 19, col = "#3a86d4",
     main = "Fuel economy by weight",
     sub  = "32 cars from the 1974 Motor Trend data",
     xlab = "Weight (1000 lbs)",
     ylab = "Miles per gallon")

A base R scatter plot of car weight against miles per gallon with the main title 'Fuel economy by weight', a subtitle below the x-axis, and labelled x and y axes.

main se place en haut, sub court le long du bas sous l’axe des x, et xlab/ylab nomment les axes. Omettez ceux dont vous n’avez pas besoin — passez main = "" pour laisser un graphique sans titre.

Couleurs des titres

Colorez chaque partie séparément. Les trois arguments reflètent les parties du titre :

  • col.main — le titre principal
  • col.lab — les étiquettes des axes (à la fois x et y)
  • col.sub — le sous-titre
plot(mtcars$wt, mtcars$mpg,
     pch = 19, col = "#3a86d4",
     main = "Fuel economy by weight",
     sub  = "Motor Trend, 1974",
     xlab = "Weight (1000 lbs)",
     ylab = "Miles per gallon",
     col.main = "#3a86d4", col.lab = "#444444", col.sub = "#888888")

A base R scatter plot with an azure main title, grey axis labels and a muted grey subtitle, each coloured independently.

Passez n’importe quelle couleur R — un nom ("red"), un code hexadécimal ("#3a86d4"), ou la valeur issue d’une palette. Voir les couleurs en R pour l’ensemble complet.

Style et taille de police

font.* définit la police, cex.* la taille. L’argument de police prend un entier :

  • 1 normal · 2 gras · 3 italique · 4 gras-italique · 5 symbole

cex est un multiplicateur — 1 est la valeur par défaut, 1.5 est une fois et demie plus grand, 0.8 plus petit.

plot(mtcars$wt, mtcars$mpg,
     pch = 19, col = "#3a86d4",
     main = "Fuel economy by weight",
     sub  = "Motor Trend, 1974",
     xlab = "Weight (1000 lbs)",
     ylab = "Miles per gallon",
     font.main = 2, font.lab = 3, font.sub = 3,
     cex.main = 1.6, cex.lab = 1.1, cex.sub = 0.9)

A base R scatter plot with a large bold main title, italic axis labels and a small subtitle, showing font style and size control.

font.main = 2 met le titre en gras, font.lab = 3 met les étiquettes des axes en italique, et cex.main = 1.6 agrandit le titre. Combinez librement les arguments de couleur, de police et de taille.

Ajouter des titres à un graphique existant avec title()

Parfois, vous dessinez le graphique d’abord — nu, ou avec un style que vous compléterez — puis vous superposez les titres. title() fait exactement cela. Elle prend les mêmes main/sub/xlab/ylab plus tout le style col.*, font.* et cex.*, et dessine sur la figure courante.

# Draw the plot with no titles
plot(mtcars$wt, mtcars$mpg,
     pch = 19, col = "#3a86d4",
     main = "", xlab = "", ylab = "")

# Add the titles afterwards
title(main = "Fuel economy by weight",
      sub  = "Motor Trend, 1974",
      xlab = "Weight (1000 lbs)",
      ylab = "Miles per gallon",
      col.main = "#3a86d4", font.main = 2, cex.main = 1.4,
      col.sub = "#5fad56",  font.sub = 3,  cex.sub = 0.9,
      col.lab = "#444444")

A base R scatter plot drawn without titles, then annotated by a separate title() call adding a red bold main title, a green italic subtitle and dark-blue axis labels.

Dessiner le graphique avec main = "", xlab = "", ylab = "" laisse les emplacements vides, puis title() les remplit. C’est le motif à privilégier quand les titres proviennent d’une boucle, d’une condition, ou d’une valeur calculée après le dessin du graphique.

Titres sur plusieurs lignes

Répartissez un titre long sur plusieurs lignes avec le caractère de saut de ligne \n. Cela fonctionne dans main, sub et les étiquettes des axes.

plot(mtcars$wt, mtcars$mpg,
     pch = 19, col = "#3a86d4",
     main = "Fuel economy by weight\n(1974 Motor Trend data)",
     xlab = "Weight (1000 lbs)",
     ylab = "Miles per gallon")

A base R scatter plot whose main title spans two lines, split at a newline character.

Si un titre sur deux lignes est tronqué en haut, élargissez la marge supérieure avant de tracer avec par(mar = c(5, 4, 5, 2)) — la troisième valeur est la marge supérieure en lignes de texte.

Texte en marge avec mtext()

mtext() écrit du texte dans n’importe laquelle des quatre marges, indépendamment des emplacements de titre. Utilisez-le pour une note de source, une légende, ou un second sous-titre. side choisit la marge (1 bas, 2 gauche, 3 haut, 4 droite) ; line est la distance en lignes par rapport au graphique ; adj l’aligne (0 gauche, 0.5 centre, 1 droite).

plot(mtcars$wt, mtcars$mpg,
     pch = 19, col = "#3a86d4",
     main = "Fuel economy by weight",
     xlab = "Weight (1000 lbs)",
     ylab = "Miles per gallon")

# A right-aligned source note in the bottom margin
mtext("Source: Motor Trend, 1974", side = 1, line = 4, adj = 1,
      cex = 0.8, col = "#888888")

# An italic caption just under the main title
mtext("Heavier cars use more fuel", side = 3, line = 0.2, adj = 0,
      cex = 0.9, font = 3, col = "#3a86d4")

A base R scatter plot with a main title at the top, a right-aligned source note in the bottom margin, and an italic caption in the top margin added with mtext().

Contrairement à main, mtext() vous laisse contrôler exactement quelle marge, à quelle distance, et l’alignement — c’est donc l’outil pour les notes que les arguments de titre ne peuvent pas placer.

Définir les titres pour toute la session avec par()

Pour styliser chaque graphique de la même manière, définissez les paramètres une fois avec par(). Ils persistent pour le reste de la session (ou jusqu’à ce que vous les réinitialisiez), de sorte que vous ne répétez pas le style sur chaque graphique.

op <- par(no.readonly = TRUE)        # save current settings

par(col.main = "#3a86d4", font.main = 2, cex.main = 1.5,
    col.lab  = "#444444", font.lab  = 1, cex.lab  = 1.1)

barplot(c(A = 2, B = 5, C = 4),
        main = "Counts by group",
        xlab = "Group", ylab = "Count",
        col = "#3a86d4")

A base R barplot whose title styling — bold azure title, larger sizes — comes from par() settings applied before the plot rather than from arguments on the call.

par(op)                              # restore so later plots are unaffected

Sauvegardez les anciens réglages avec par(no.readonly = TRUE) et restaurez-les ensuite, sinon le style se propage dans chaque graphique que vous dessinez plus tard dans la session.

Essayez en direct

Modifiez le texte du titre, les couleurs, les polices ou les tailles et appuyez sur Run — il s’exécute dans votre navigateur via webR, sans installation.

🟢 Avec un agent IA

Demandez à Prova « comment rendre le titre de mon graphique gras et d’une couleur différente en R de base ? » — elle répond avec du code R de base que vous pouvez exécuter, donc la solution est reproductible. The runtime is the judge. Demander à Prova →

Problèmes courants

Mon titre sur plusieurs lignes est coupé en haut. La marge supérieure par défaut ne tient qu’une seule ligne de titre. Élargissez-la avant de tracer : par(mar = c(5, 4, 5, 2)) (le troisième nombre est la marge supérieure en lignes de texte), ou réduisez le titre avec cex.main.

col.main colore tout, pas seulement le titre. Utilisez l’argument spécifique à la partie : col.main pour le titre principal, col.lab pour les étiquettes des axes, col.sub pour le sous-titre. Le simple col est la couleur des données (points/lignes), pas des titres — passer col = "red" colore les points en rouge, pas le titre.

Questions fréquentes

Passez main = "Votre titre" à la fonction de graphique — plot(x, y, main = "Votre titre"). Ajoutez xlab et ylab pour les étiquettes des axes et sub pour un sous-titre. Pour ajouter un titre à un graphique déjà dessiné, appelez title(main = "Votre titre") ensuite.

Définissez xlab et ylab sur l’appel de graphique : plot(x, y, xlab = "Weight", ylab = "MPG"). Sans eux, le R de base étiquette les axes avec les noms des variables. Vous pouvez aussi les ajouter plus tard avec title(xlab = "Weight", ylab = "MPG").

Utilisez font.main pour le style (2 gras, 3 italique, 4 gras-italique) et col.main pour la couleur : plot(x, y, main = "Title", font.main = 2, col.main = "#3a86d4"). Utilisez cex.main pour changer sa taille.

Appelez title() après que le graphique soit dessiné : title(main = "Title", xlab = "X", ylab = "Y"). Elle prend les mêmes arguments de couleur, de police et de taille (col.main, font.main, cex.main) et dessine sur la figure courante.

Mettez \n là où la coupure doit aller : main = "First line\nSecond line". Si la seconde ligne est tronquée, élargissez d’abord la marge supérieure avec par(mar = c(5, 4, 5, 2)).

Testez vos connaissances

Le graphique ci-dessous est dessiné nu. Ajoutez un titre principal azur en gras "Speed vs stopping distance", étiquetez l’axe des x "Speed (mph)" et l’axe des y "Distance (ft)", et ajoutez un sous-titre "cars dataset".

Appelez title() après le graphique. Utilisez main pour le titre avec font.main = 2 et col.main = "#3a86d4" pour le rendre gras et azur, puis sub, xlab et ylab pour le reste.

plot(cars$speed, cars$dist, pch = 19, col = "#3a86d4")

title(main = "Speed vs stopping distance",
      sub  = "cars dataset",
      xlab = "Speed (mph)",
      ylab = "Distance (ft)",
      font.main = 2, col.main = "#3a86d4")

font.main = 2 met le titre en gras et col.main le colore ; sub/xlab/ylab remplissent le reste.

Vérification rapide. Vous voulez que seul le titre principal soit en rouge, en laissant les étiquettes des axes en noir. Quel argument définissez-vous ?

col.main = "red". Le simple col colore les données (points/lignes), col.lab colore les étiquettes des axes, et col.sub le sous-titre — col.main est celui qui cible uniquement le titre principal.

Conclusion

Le R de base vous offre deux voies vers un graphique titré : passer main, sub, xlab et ylab à la fonction de graphique, ou les ajouter ensuite avec title(). Stylisez chaque partie séparément avec les arguments col.*, font.* et cex.*, coupez les titres longs avec \n, et utilisez mtext() quand vous avez besoin de texte que les emplacements de titre ne peuvent pas placer.

Leçons connexes

Cette page vous a-t-elle été utile ?

Prouvez que vous savez le faire. Maîtrisez toute la série R Base Graphics — 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 : chaque figure a été produite par le code affiché, exécuté lors de la génération du site (si elles s’affichent, le code fonctionne), et le bac à sable se réexécute en direct dans votre navigateur. Modifiez n’importe quel bloc et appuyez sur Run. The runtime is the judge.

Réutilisation

Citation

BibTeX
@online{2026,
  author = {},
  title = {Ajouter un titre à un graphique en R : main, title() et
    étiquettes d’axes},
  date = {2026-06-27},
  url = {https://www.datanovia.com/learn/data-visualization/r-base/plot-titles},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Ajouter un titre à un graphique en R : main, title() et étiquettes d’axes.” 2026. June 27. https://www.datanovia.com/learn/data-visualization/r-base/plot-titles.