Graduations d’axe ggplot2 dans R : personnaliser marques et étiquettes

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.

Date de publication

20 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Les graduations d’axe sont les petites marques le long d’un axe ainsi que les étiquettes textuelles à côté d’elles — les deux sont entièrement personnalisables dans ggplot2.
  • Stylisez le texte des graduations (couleur, taille, style de police) avec theme(axis.text.x = element_text(...)).
  • Faites pivoter les étiquettes trop serrées avec angle =, puis repositionnez-les avec hjust/vjust.
  • Supprimez les étiquettes avec axis.text = element_blank() ; supprimez aussi les marques de graduation avec axis.ticks = element_blank().
  • Sur un axe discret, renommez et réordonnez les graduations avec scale_x_discrete(breaks =, labels =, limits =).
  • Sur un axe continu, définissez les positions/l’intervalle des graduations avec scale_y_continuous(breaks = seq(...)), et formatez les étiquettes (pourcentage, devise) avec le package scales.
  • 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

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.

Construire le graphique d’exemple

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.

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

ggplot2 box plot of tooth length by vitamin C dose, with default axis tick marks and labels.

Styliser le texte des graduations : couleur, taille, style de police

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

ggplot2 box plot with bold blue x-axis tick labels and larger plain y-axis tick labels.

Pour styliser les deux axes à la fois, définissez axis.text au lieu des axis.text.x / axis.text.y propres à chaque axe.

Faire pivoter les étiquettes des graduations (angle + hjust/vjust)

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

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(angle = 45, hjust = 1))

ggplot2 box plot with x-axis tick labels rotated 45 degrees and right-aligned to their ticks.

Pour des étiquettes entièrement verticales, utilisez angle = 90, avec hjust = 1 et vjust = 0.5 pour les garder nettes.

Supprimer uniquement les étiquettes des graduations

Pour masquer le texte des graduations tout en conservant les marques, définissez axis.text (ou axis.text.x / axis.text.y) à element_blank().

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

ggplot2 box plot with the x-axis tick labels removed but the tick marks still visible.

Supprimer les marques et les étiquettes des graduations

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.

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.ticks = element_blank(),
    axis.text  = element_blank()
  )

ggplot2 box plot with both the axis tick marks and the tick labels removed for a minimal look.

Personnaliser la ligne d’axe

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.

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.line = element_line(colour = "#3a86d4", linewidth = 0.8, linetype = "solid"))

ggplot2 box plot with solid dark blue axis lines drawn along the x and y axes.

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.

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.ticks = element_line(colour = "#3a86d4", linewidth = 0.8),
    axis.ticks.length = unit(.25, "cm")
  )

ggplot2 box plot with thick blue tick marks lengthened to a quarter centimetre on both axes.

Axe discret : renommer les étiquettes des graduations

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.

library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
  geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
  scale_x_discrete(
    breaks = c("0.5", "1", "2"),
    labels = c("Low", "Medium", "High")
  ) +
  labs(x = "Dose level", y = "Tooth length") +
  theme_minimal()

ggplot2 box plot with the dose ticks renamed to Low, Medium, and High on the x-axis.

breaks = sélectionne quelles catégories étiqueter ; labels = donne à chacune son nouveau texte (les deux vecteurs s’alignent position par position).

Axe discret : changer l’ordre des éléments

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.

library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
  geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
  scale_x_discrete(limits = c("2", "1", "0.5")) +
  labs(x = "Dose (mg/day)", y = "Tooth length") +
  theme_minimal()

ggplot2 box plot with the dose ticks reordered so the highest dose appears first on the x-axis.

Axe discret : choisir quels éléments afficher

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.

library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
  geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
  scale_x_discrete(limits = c("0.5", "2")) +
  labs(x = "Dose (mg/day)", y = "Tooth length") +
  theme_minimal()

ggplot2 box plot showing only the 0.5 and 2 mg/day dose groups, with the middle dose omitted.

Axe continu : définir l’intervalle des graduations (breaks)

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.

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

ggplot2 box plot with y-axis ticks set at an even interval of 5 from 0 to 40.

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.

library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
  geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
  scale_y_continuous(n.breaks = 8) +
  labs(x = "Dose (mg/day)", y = "Tooth length") +
  theme_minimal()

ggplot2 box plot with about eight evenly-spaced y-axis ticks chosen automatically by n.breaks.

Axe continu : supprimer les étiquettes et les lignes de la grille

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.

library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
  geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
  scale_y_continuous(breaks = NULL) +
  labs(x = "Dose (mg/day)", y = "Tooth length") +
  theme_minimal()

ggplot2 box plot with the y-axis ticks, labels, and gridlines all removed via breaks = NULL.

Axe continu : formater les étiquettes des graduations (pourcentage, devise)

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

library(ggplot2)
ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
  geom_boxplot(fill = "#3a86d4", alpha = 0.7) +
  scale_y_continuous(labels = scales::label_dollar()) +
  labs(x = "Dose (mg/day)", y = "Tooth length ($)") +
  theme_minimal()

ggplot2 box plot with the y-axis tick labels formatted as dollar amounts using the scales package.

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.

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 des graduations d’axe avec matplotlib arrive dans la série Python.

🟢 Avec un agent IA

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 →

Questions fréquentes

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.

Testez vos connaissances

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.

# breaks = seq(0, 40, by = 10) sets the y interval;
# axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5) rotates the x labels.
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))
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))

Conclusion

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.

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 = {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}
}
Veuillez citer ce travail comme suit :
“Graduations d’axe ggplot2 dans R : personnaliser marques et étiquettes.” 2026. June 20. https://www.datanovia.com/learn/data-visualization/ggplot2/axis-ticks.