272 votes

Modification de la taille de la police et de la direction du texte des axes dans ggplot2

Je trace un graphique avec une variable catégorielle sur l'axe des x et une variable numérique sur l'axe des y.

Pour l'axe des x, étant donné qu'il y a de nombreux points de données, le formatage du texte par défaut fait que l'étiquette de chaque marque de coche se chevauche avec d'autres étiquettes. Comment puis-je (a) modifier la taille de la police pour le texte de mon axe et (b) modifier l'orientation du texte afin qu'il soit perpendiculaire à l'axe ?

8voto

HBat Points 1096

Une autre façon de traiter les étiquettes qui se chevauchent est d'utiliser guide = guide_axis(n.dodge = 2) .

library(dplyr)
library(tibble)
library(ggplot2)

dt <- mtcars %>% rownames_to_column("name") %>% 
  dplyr::filter(cyl == 4)

# Overlapping labels
ggplot(dt, aes(x = name, y = mpg)) + geom_point()

enter image description here

ggplot(dt, aes(x = name, y = mpg)) + geom_point() +
  scale_x_discrete(guide = guide_axis(n.dodge = 2))

enter image description here

4voto

user131476 Points 102

L'utilisation de l'attribut "fill" est utile dans ce genre de cas. Vous pouvez supprimer le texte de l'axe en utilisant element_blank() et affiche un graphique à barres multicolores avec une légende. Je trace la fréquence de retrait d'une pièce dans un atelier de réparation comme suit

ggplot(data=df_subset,aes(x=Part,y=Removal_Frequency,fill=Part))+geom_bar(stat="identity")+theme(axis.text.x  = element_blank())

J'ai opté pour cette solution dans mon cas, car j'avais de nombreuses barres dans le graphique à barres et je n'ai pas pu trouver une taille de police appropriée qui soit à la fois lisible et suffisamment petite pour ne pas se chevaucher.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X