x <- 1:10
y <- x^2
plot(x, y,
cex.axis = 1.3, col.axis = "#3a86d4", font.axis = 4,
xlab = "x", ylab = "y")
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.
27 juin 2026
7 juillet 2026
axes = FALSE (les deux) ou xaxt = "n" / yaxt = "n" (un seul côté), puis tracez le vôtre.axis(side, at = , labels = ) — side 1=bas, 2=gauche, 3=haut, 4=droite ; at est l’emplacement des graduations, labels le texte à côté.las = 2 (perpendiculaire). Pour un angle libre, étiquetez avec text(..., srt = 45).tck / tcl ; stylisez avec cex.axis (taille), col.axis (couleur), font.axis (style).axis() (labels = FALSE, tcl plus petit).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.
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. |

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.
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.
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.
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.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.
axis() ajoute un axe au graphique courant. Ses trois arguments fondamentaux :
| 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 :

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

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

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é.
Modifiez les positions, les étiquettes ou l’angle et appuyez sur Run — cela s’exécute dans votre navigateur via webR, sans installation.
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 →
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.
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.
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.
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.
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.
text() et de style que cette leçon utilise. · Titres de graphique — étiquetez les axes eux-mêmes. · Axes et échelles ggplot2 — la façon « grammaire des graphiques » de contrôler les graduations.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.
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 : 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.
@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}
}