library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
labs(x = "Dose (mg/day)", y = "Tooth length") +
theme_minimal()
Stylisez, faites pivoter, supprimez et définissez les graduations de n’importe quel axe ggplot2 — en direct dans votre navigateur
Apprenez à personnaliser les graduations d’axe dans ggplot2 — stylisez et faites pivoter le texte des graduations, supprimez les marques et les étiquettes, définissez où apparaissent les graduations (intervalles), renommez et réordonnez les graduations discrètes, et formatez les étiquettes continues en pourcentage ou en devise. Éditez et exécutez le code en direct, sans installation.
20 juin 2026
7 juillet 2026
theme(axis.text.x = element_text(...)).angle =, puis repositionnez-les avec hjust/vjust.axis.text = element_blank() ; supprimez aussi les marques de graduation avec axis.ticks = element_blank().scale_x_discrete(breaks =, labels =, limits =).scale_y_continuous(breaks = seq(...)), et formatez les étiquettes (pourcentage, devise) avec le package scales.Les graduations d’axe sont les petites marques le long d’un axe et les étiquettes textuelles à côté d’elles. C’est l’une des premières choses que vous personnalisez en peaufinant un graphique : faire pivoter des étiquettes de dates trop serrées, définir un intervalle judicieux, renommer des codes de groupe cryptiques ou formater un axe numérique en pourcentage. Dans R, ggplot2 contrôle l’apparence des graduations via theme() et la position et les étiquettes des graduations via les fonctions scale_*. Cette leçon parcourt chaque tâche courante, avec des figures rendues ici même — réexécutez ou éditez n’importe laquelle en direct.
Nous utilisons le jeu de données intégré ToothGrowth : la longueur des cellules odontoblastes (len) chez des cobayes recevant de la vitamine C à trois doses (dose : 0.5, 1 ou 2 mg/jour) via deux méthodes d’administration (supp : jus d’orange OJ ou acide ascorbique VC). Tout au long, nous partons de la même boîte à moustaches et restylisons ses graduations d’axe.
Chaque section ci-dessous part de cette boîte à moustaches : dose (enveloppé dans factor()) sur l’axe des x et len sur l’axe des y. Gardez ce modèle en tête — chaque bloc suivant ajoute une couche de personnalisation des graduations.
Le texte à côté de chaque graduation se trouve dans theme() sous axis.text.x (axe des x) et axis.text.y (axe des y), tous deux stylisés avec element_text(). Définissez colour, size et face ("plain", "bold", "italic", "bold.italic") pour correspondre à votre design.
library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
labs(x = "Dose (mg/day)", y = "Tooth length") +
theme_minimal() +
theme(
axis.text.x = element_text(colour = "#3a86d4", size = 12, face = "bold"),
axis.text.y = element_text(colour = "grey30", size = 11)
)
Pour styliser les deux axes à la fois, définissez axis.text au lieu des axis.text.x / axis.text.y propres à chaque axe.
Lorsque les étiquettes sont longues ou trop serrées, faites-les pivoter avec angle =. Une étiquette pivotée a aussi besoin de hjust/vjust pour qu’elle s’aligne sur la graduation plutôt que de s’en éloigner — hjust = 1 aligne à droite une étiquette à 45°, vjust = 0.5 centre verticalement une étiquette à 90°.

Pour des étiquettes entièrement verticales, utilisez angle = 90, avec hjust = 1 et vjust = 0.5 pour les garder nettes.
Pour masquer le texte des graduations tout en conservant les marques, définissez axis.text (ou axis.text.x / axis.text.y) à element_blank().
Pour supprimer également les petites marques de graduation, videz axis.ticks. Combinez-le avec axis.text pour retirer à la fois les marques et les étiquettes — un rendu épuré pour des graphiques minimalistes ou de type sparkline.
La ligne d’axe elle-même est axis.line, stylisée avec element_line() — définissez colour, linewidth et linetype. theme_minimal() masque les lignes d’axe, alors rajoutez-les ici pour encadrer le graphique.

Les petites marques de graduation sont un élément distinct, axis.ticks, lui aussi tracé avec element_line() — définissez leur colour et leur linewidth pour les styliser. Leur longueur physique est axis.ticks.length, donnée comme une valeur unit() ; allongez-les pour les mettre en valeur ou raccourcissez-les pour un rendu discret.
Lorsque l’axe des x est discret (catégories), contrôlez ses graduations avec scale_x_discrete(). Passez labels = pour renommer les graduations — par exemple, transformez les simples numéros de dose en étiquettes descriptives.

breaks = sélectionne quelles catégories étiqueter ; labels = donne à chacune son nouveau texte (les deux vecteurs s’alignent position par position).
scale_x_discrete(limits = ...) définit à la fois quelles catégories apparaissent et dans quel ordre. Listez-les dans la séquence que vous voulez le long de l’axe.
Comme limits = liste exactement les catégories à conserver, en retirer une du vecteur la supprime du graphique — n’affichez que les doses qui vous intéressent.
Sur un axe continu, utilisez scale_y_continuous(breaks = ...). Passez seq(from, to, by =) pour un intervalle régulier, ou un vecteur personnalisé pour des graduations irrégulières.

Pour des graduations à des valeurs précises et irrégulières, passez un simple vecteur — par exemple breaks = c(0, 10, 25, 40).
Pour contrôler le nombre de graduations plutôt que leurs positions exactes, passez n.breaks = et laissez ggplot2 choisir des valeurs rondes et bien espacées — n.breaks = 8 demande environ huit graduations.
Définir breaks = NULL sur une échelle continue supprime les graduations, les étiquettes et les lignes de grille correspondantes de cet axe en une seule fois — pratique lorsque les valeurs sont implicites ou distrayantes.
Le package scales formate les étiquettes des graduations continues sans modifier les données. Passez une fonction d’étiquetage à scale_y_continuous(labels = ...) — scales::label_percent(), label_dollar(), label_comma() ou label_scientific().

Remplacez par scales::label_percent() pour des proportions ou scales::label_comma() pour des séparateurs de milliers — le formateur ne change que la façon dont les nombres sont affichés.
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 des graduations d’axe avec matplotlib arrive dans la série Python.
Demandez à Prova « comment faire pivoter mes étiquettes d’axe des x de 45° sans qu’elles s’éloignent des graduations ? » — elle répond avec du code que vous pouvez exécuter, donc l’explication est reproductible. The runtime is the judge. Demander à Prova →
Faites pivoter les étiquettes avec theme(axis.text.x = element_text(angle = 45, hjust = 1)). Le angle = effectue la rotation et hjust = 1 réaligne chaque étiquette à droite sur sa graduation ; pour des étiquettes entièrement verticales, utilisez angle = 90 avec hjust = 1, vjust = 0.5.
Videz-les dans theme() : axis.text = element_blank() masque le texte des graduations et axis.ticks = element_blank() masque les petites marques de graduation. Définissez les deux pour retirer ensemble les étiquettes et les marques, ou utilisez axis.text.x / axis.text.y pour cibler un seul axe.
Sur un axe continu, utilisez scale_y_continuous(breaks = seq(0, 40, by = 5)) pour un intervalle régulier, ou passez un vecteur personnalisé comme breaks = c(0, 10, 25, 40) pour des graduations irrégulières.
Utilisez scale_x_discrete() : passez labels = (associé à breaks =) pour renommer les catégories, et limits = pour définir à la fois quelles catégories apparaissent et leur ordre — par exemple, limits = c("2", "1", "0.5") inverse les graduations de dose.
Stylisez les marques avec theme(axis.ticks = element_line(colour = "#3a86d4", linewidth = 0.8)) et définissez leur longueur avec axis.ticks.length = unit(.25, "cm"). Les deux résident dans theme(), séparément de axis.line (l’axe lui-même) et de axis.text (les étiquettes).
Passez n.breaks = à une échelle continue et ggplot2 choisit pour vous autant de breaks bien arrondis, par exemple scale_y_continuous(n.breaks = 8). Utilisez plutôt breaks = lorsque vous avez besoin des graduations à des valeurs précises.
Passez une fonction d’étiquetage de scales à l’argument labels = de l’échelle, par exemple scale_y_continuous(labels = scales::label_dollar()) ou scales::label_percent(). Le formateur ne change que la façon dont les nombres sont affichés — il ne modifie pas les données sous-jacentes.
Complétez le code pour que les étiquettes de l’axe des x soient pivotées de 90° et que les graduations de l’axe des y apparaissent toutes les 10 unités.
library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
scale_y_continuous(breaks = seq(0, 40, by = 10)) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))
Vous avez stylisé et fait pivoter le texte des graduations d’axe, supprimé les marques et les étiquettes, tracé la ligne d’axe, renommé et réordonné des graduations discrètes, défini des intervalles de graduations continues avec breaks, et formaté les étiquettes avec le package scales. Ensuite, donnez à ces graduations de meilleurs titres dans la leçon titres, sous-titres et légendes, ou revisitez la leçon sur la boîte à moustaches sur laquelle les exemples sont construits.
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 = {Graduations d’axe ggplot2 dans R : personnaliser marques et
étiquettes},
date = {2026-06-20},
url = {https://www.datanovia.com/learn/data-visualization/ggplot2/axis-ticks},
langid = {fr}
}