Graduations des axes en R : étiquettes personnalisées avec axis()

Supprimez l’axe par défaut, placez les graduations où vous voulez, puis faites-les pivoter, stylisez-les et étiquetez-les

Personnalisez les graduations d’un graphique en R de base. Supprimez l’axe par défaut, tracez le vôtre avec axis(side, at=, labels=) aux positions choisies, faites pivoter les étiquettes avec las ou text(srt=), réglez la longueur et la direction des graduations avec tck/tcl, stylisez avec cex.axis/col.axis/font.axis, et ajoutez des graduations de date, de catégorie ou secondaires.

Date de publication

27 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Supprimez l’axe par défaut de R de base avec axes = FALSE (les deux) ou xaxt = "n" / yaxt = "n" (un seul côté), puis tracez le vôtre.
  • Construisez un axe personnalisé avec axis(side, at = , labels = )side 1=bas, 2=gauche, 3=haut, 4=droite ; at est l’emplacement des graduations, labels le texte à côté.
  • Faites pivoter les étiquettes avec las = 2 (perpendiculaire). Pour un angle libre, étiquetez avec text(..., srt = 45).
  • Réglez la longueur/direction des graduations avec tck / tcl ; stylisez avec cex.axis (taille), col.axis (couleur), font.axis (style).
  • Ajoutez des graduations secondaires entre les principales avec un second appel à axis() (labels = FALSE, tcl plus petit).

Introduction

Vous avez tracé un graphique et l’axe des x affiche 0, 2, 4, 6, … — mais vous vouliez des graduations à vos propres positions, avec des noms de mois au lieu de nombres, tournées sur le côté pour qu’elles ne se chevauchent pas. En R de base cela se fait en deux étapes : désactiver l’axe par défaut, puis tracer le vôtre avec axis().

axis() est la fonction de fond. Elle prend un side (quel bord), un at (les positions) et labels (le texte), si bien que vous contrôlez exactement où chaque graduation se place et ce qu’elle indique. Tout autour gravitent quelques paramètres graphiques — las pour l’orientation, tck/tcl pour la longueur, cex.axis/col.axis/font.axis pour le style. Cette leçon couvre chacun d’eux, puis les étiquettes de date, les étiquettes de catégorie et les graduations secondaires.

Vous préférez la grammaire des graphiques ? ggplot2 contrôle les graduations via scale_* et theme() — voir axes et échelles dans la série ggplot2.

Styliser les graduations par défaut : taille, couleur, police

Avant de remplacer l’axe, vous pouvez restyler celui que R trace. Trois paramètres s’en chargent, passés directement à plot() :

Paramètre Ce qu’il contrôle
cex.axis Taille des étiquettes de graduation (1 = défaut ; 1.5 = 50 % plus grand).
col.axis Couleur des étiquettes de graduation.
font.axis Style : 1 normal, 2 gras, 3 italique, 4 gras-italique.
x <- 1:10
y <- x^2

plot(x, y,
     cex.axis = 1.3, col.axis = "#3a86d4", font.axis = 4,
     xlab = "x", ylab = "y")

A base R scatter plot whose axis tick labels are drawn in azure, bold italic, and 30 percent larger than the default.

font.axis = 4 rend les nombres en gras-italique et col.axis = "#3a86d4" les peint en azur — pratique pour correspondre à une charte graphique sans toucher aux données.

Faire pivoter les étiquettes de graduation avec las

Les étiquettes longues se chevauchent. La solution la plus rapide est las, qui règle l’orientation de toutes les étiquettes de graduation :

  • las = 0 — parallèle à l’axe (le défaut).
  • las = 1 — toujours horizontale.
  • las = 2 — toujours perpendiculaire à l’axe (étiquettes x verticales — la solution habituelle contre l’encombrement).
  • las = 3 — toujours verticale.
op <- par(mfrow = c(1, 2))
x <- 1:10
y <- x^2

plot(x, y, las = 0, main = "las = 0 (default)", xlab = "x", ylab = "y")
plot(x, y, las = 2, main = "las = 2 (perpendicular)", xlab = "x", ylab = "y")

Two side-by-side base R scatter plots: the left uses default parallel tick labels, the right turns them perpendicular with las equals 2.

par(op)

las = 2 redresse les étiquettes y et tourne les étiquettes x sur le côté — exactement ce que vous voulez quand des noms de catégories ou de longs nombres se télescopent.

Supprimer l’axe par défaut

Pour placer les graduations là où R ne le ferait pas, supprimez d’abord son axe. Vous avez deux interrupteurs :

  • axes = FALSE dans plot() — supprime les deux axes (et la boîte).
  • xaxt = "n" / yaxt = "n" — supprime juste l’axe des x ou juste l’axe des y, en gardant l’autre.
x <- 1:10
y <- x^2

# Drop only the x axis; keep y
plot(x, y, xaxt = "n", xlab = "x", ylab = "y")

A base R plot drawn with no x axis: the points and y axis show, but the bottom edge has no tick marks or numbers, ready for a custom axis.

Désormais le bord inférieur est vide — une page blanche pour axis(). Utilisez xaxt = "n"/yaxt = "n" quand vous voulez remplacer un seul axe, et axes = FALSE quand vous allez redessiner les deux.

Tracer un axe personnalisé avec axis()

axis() ajoute un axe au graphique courant. Ses trois arguments fondamentaux :

axis(side, at, labels)
Argument Ce qu’il fait
side Quel bord : 1 bas, 2 gauche, 3 haut, 4 droite.
at Un vecteur numérique de positions de graduation, en coordonnées de données.
labels Le texte à côté de chaque graduation (par défaut at ; passez un vecteur de caractères pour des mots).

Ici nous choisissons nos propres graduations x et les étiquetons — notez que at et labels se correspondent un à un :

x <- 1:10
y <- x^2

# Suppress both default axes
plot(x, y, axes = FALSE, xlab = "x", ylab = "y")

# Custom x axis: ticks at 1, 5, 10
axis(side = 1, at = c(1, 5, 10))

# Custom y axis: ticks at 0, 50, 100
axis(side = 2, at = c(0, 50, 100))

box()  # redraw the plot border that axes = FALSE removed

A base R plot whose custom x axis has ticks only at 1, 5 and 10, and whose custom y axis has ticks at 0, 50 and 100.

axes = FALSE supprime aussi la boîte environnante, donc nous appelons box() pour la remettre. Chaque axis() trace un bord ; combinez-en autant que nécessaire.

Étiquettes de texte personnalisées

Passez un vecteur de caractères à labels pour remplacer les nombres par des mots — noms de catégories, unités, n’importe quoi. at donne toujours les positions ; labels fournit le texte dans le même ordre.

scores <- c(3, 7, 5)
plot(1:3, scores, type = "b", pch = 19, col = "#3a86d4",
     xaxt = "n", xlab = "Group", ylab = "Score")

# Words instead of 1, 2, 3
axis(side = 1, at = 1:3, labels = c("Low", "Medium", "High"))

A base R bar-style plot whose x axis ticks are labelled Low, Medium and High instead of numbers.

L’astuce est toujours la même : masquer l’axe par défaut (xaxt = "n"), puis axis() avec at pour les positions et labels pour le texte.

Faire pivoter les étiquettes personnalisées à n’importe quel angle

las = 2 ne donne que 90°. Pour un angle incliné, tracez les graduations avec axis(..., labels = FALSE), puis écrivez les étiquettes vous-même avec text() et son srt (string rotation, en degrés). xpd = TRUE laisse le texte déborder dans la marge, et pos contrôle de quel côté du point il se place.

months <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun")
y <- c(12, 18, 9, 22, 15, 20)

# Wider bottom margin for the slanted labels
op <- par(mar = c(5, 4, 2, 1))
plot(1:6, y, type = "b", pch = 19, col = "#3a86d4",
     xaxt = "n", xlab = "", ylab = "Sales")

# Draw the ticks only (no labels yet)
axis(side = 1, at = 1:6, labels = FALSE)

# Write the labels at 45 degrees, just below the axis
text(x = 1:6, y = par("usr")[3] - 1,
     labels = months, srt = 45, adj = 1, xpd = TRUE)

A base R plot whose x axis labels Jan to Jun are written at a 45-degree slant below the axis.

par(op)

par("usr")[3] est la coordonnée y de l’axe du bas, donc - 1 descend le texte juste en dessous. srt = 45 l’incline ; adj = 1 aligne à droite chaque étiquette sur sa graduation. C’est la recette chaque fois que las ne peut pas donner l’angle dont vous avez besoin.

Longueur et direction des graduations : tck et tcl

Deux paramètres dimensionnent les graduations :

  • tcl — longueur en lignes de texte. Négatif pointe les graduations vers l’extérieur (le défaut est -0.5), positif les pointe vers l’intérieur.
  • tck — longueur en fraction de la zone de tracé. tck = 1 trace des lignes de grille sur toute la longueur ; une petite valeur comme 0.02 donne de courtes graduations. (tck prend le pas sur tcl lorsqu’il est défini.)
op <- par(mfrow = c(1, 2))
x <- 1:10
y <- x^2

# Inward ticks
plot(x, y, tcl = 0.4, main = "tcl = 0.4 (inward)", xlab = "x", ylab = "y")

# Full-length gridlines
plot(x, y, tck = 1, col.axis = "black",
     main = "tck = 1 (gridlines)", xlab = "x", ylab = "y")

Two side-by-side base R plots: the left has long ticks pointing inward, the right has light full-length gridlines from tck equals 1.

par(op)

Utilisez tcl pour le choix quotidien intérieur/extérieur et tck = 1 quand vous voulez que les graduations traversent le panneau en lignes de grille.

Étiquettes de date sur un axe

Pour une série temporelle, formatez les dates vous-même et placez-les avec axis(). Tracez en fonction des dates numériques, supprimez l’axe des x, puis étiquetez les dates choisies avec format().

dates <- as.Date("2024-01-01") + seq(0, 150, by = 30)
value <- c(10, 14, 9, 17, 13, 19)

plot(dates, value, type = "b", pch = 19, col = "#3a86d4",
     xaxt = "n", xlab = "", ylab = "Value")

# Tick + label every plotted date, formatted as "Jan 2024"
axis(side = 1, at = dates, labels = format(dates, "%b %Y"), las = 2)

A base R line plot of a value over six months whose x axis is labelled with abbreviated month-year dates.

format(dates, "%b %Y") transforme chaque date en "Jan 2024" ; at = dates place une graduation à chacune, et las = 2 les redresse pour qu’elles tiennent.

Ajouter des graduations secondaires

R ne trace que les graduations principales. Pour en ajouter de secondaires entre elles, appelez axis() une seconde fois avec des positions supplémentaires, labels = FALSE (pas de texte) et un tcl plus court.

x <- 1:10
y <- x^2

plot(x, y, xaxt = "n", xlab = "x", ylab = "y")

# Major ticks: labelled, every 2
axis(side = 1, at = seq(0, 10, by = 2))

# Minor ticks: shorter, unlabelled, at the odd values
axis(side = 1, at = seq(1, 9, by = 2), labels = FALSE, tcl = -0.25)

A base R plot with labelled major x ticks at 0, 2, 4, 6, 8, 10 and shorter unlabelled minor ticks at every odd value in between.

Le premier axis() trace les graduations principales étiquetées ; le second ajoute des graduations courtes et non étiquetées à mi-chemin entre elles. Le même schéma (un second appel labels = FALSE avec un tcl plus petit) fonctionne de n’importe quel côté.

Essayez en direct

Modifiez les positions, les étiquettes ou l’angle et appuyez sur Run — cela s’exécute dans votre navigateur via webR, sans installation.

🟢 Avec un agent IA

Demandez à Prova « pourquoi mes étiquettes d’axe personnalisées sont-elles coupées au bord du graphique ? » — elle répond avec du code R de base que vous pouvez exécuter, donc la correction est reproductible. The runtime is the judge. Demander à Prova →

Problèmes courants

Les étiquettes se chevauchent. Les noms de catégories longs ou les nombreuses graduations se télescopent. Tournez-les perpendiculairement avec las = 2, réduisez-les avec cex.axis = 0.8, ou réduisez le nombre de graduations en passant moins de positions à at. Pour un angle incliné, tracez axis(..., labels = FALSE) et écrivez les étiquettes avec text(..., srt = 45).

Les étiquettes personnalisées sont coupées au bord du graphique. Le texte écrit en dessous ou à côté de l’axe peut tomber dans la marge et être coupé. Élargissez d’abord la marge avec par(mar = c(5, 4, 2, 1)) et ajoutez xpd = TRUE à l’appel text() pour qu’il soit autorisé à dessiner hors de la zone de tracé.

La boîte a disparu. axes = FALSE supprime la boîte environnante en même temps que les deux axes. Appelez box() après avoir tracé vos axes personnalisés pour redessiner la bordure.

Questions fréquentes

Supprimez l’axe par défaut avec xaxt = "n" (ou axes = FALSE pour les deux), puis appelez axis(side, at = , labels = ) : side est le bord (1 bas, 2 gauche), at est le vecteur de positions de graduation, et labels est le texte à côté.

Définissez las = 2 dans plot() pour tourner toutes les étiquettes de graduation perpendiculairement à l’axe. Pour un angle arbitraire, tracez les graduations avec axis(..., labels = FALSE) et écrivez les étiquettes avec text(x, y, labels, srt = 45).

axis() trace un axe sur le graphique courant. Vous lui donnez un side (quel bord), at (les positions de graduation en coordonnées de données) et labels (le texte). C’est ainsi que vous remplacez les graduations par défaut de R de base par les vôtres.

Masquez l’axe par défaut (xaxt = "n"), puis passez un vecteur de caractères à labels : axis(1, at = 1:3, labels = c("Low", "Medium", "High")). Les positions at et les labels se correspondent un à un.

Longueur : tcl (négatif = extérieur, positif = intérieur) ou tck (une fraction de la zone de tracé ; tck = 1 donne des lignes de grille). Style : cex.axis règle la taille des étiquettes, col.axis la couleur et font.axis le style.

Testez vos connaissances

Le graphique ci-dessous a son axe des x supprimé (xaxt = "n"). Ajoutez un appel axis() qui place des graduations aux positions 1:4 et les étiquette "Q1", "Q2", "Q3", "Q4", tournées perpendiculairement.

Utilisez axis(side = 1, ...). Passez at = 1:4 pour les positions, un vecteur de caractères à labels, et las = 2 pour tourner les étiquettes perpendiculairement.

axis(side = 1, at = 1:4,
     labels = c("Q1", "Q2", "Q3", "Q4"),
     las = 2)

at place les quatre graduations, labels fournit le texte dans le même ordre, et las = 2 les redresse.

Vérification rapide. Vous voulez que les graduations pointent vers l’intérieur et soient plus courtes que par défaut. Quel paramètre changez-vous ?

tcl. Un tcl positif pointe les graduations vers l’intérieur (négatif les pointe vers l’extérieur) ; une plus petite valeur absolue les raccourcit — par ex. tcl = 0.3.

Conclusion

Personnaliser les graduations en R de base se fait en deux mouvements : supprimer l’axe par défaut (xaxt = "n", yaxt = "n" ou axes = FALSE), puis tracer le vôtre avec axis(side, at = , labels = ). À partir de là, las fait pivoter les étiquettes, text(srt = ) les incline à n’importe quel angle, tck/tcl les dimensionnent, et cex.axis/col.axis/ font.axis les stylisent. Le même appel axis() gère les dates, les noms de catégories et les graduations secondaires.

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 = {Graduations des axes en R : étiquettes personnalisées avec
    axis()},
  date = {2026-06-27},
  url = {https://www.datanovia.com/learn/data-visualization/r-base/axis-ticks},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Graduations des axes en R : étiquettes personnalisées avec axis().” 2026. June 27. https://www.datanovia.com/learn/data-visualization/r-base/axis-ticks.