DEPASSÉ - voir cette réponse pour une approche plus simple
Pour obtenir des étiquettes d'axes x lisibles sans dépendances supplémentaires, vous voulez utiliser :
... +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)) +
...
Cela fait pivoter les étiquettes d'axe des ticks de 90° dans le sens antihoraire et les aligne verticalement à leur extrémité (hjust = 1
) et horizontalement à leur centre avec la marque de tick correspondante (vjust = 0.5
).
Exemple complet :
library(ggplot2)
data(diamonds)
diamonds$cut <- paste("Super Déé-Duper",as.character(diamonds$cut))
q <- qplot(cut,carat,data=diamonds,geom="boxplot")
q + theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))
Remarquez que les paramètres de justification verticale/horizontale vjust
/hjust
de element_text
sont relatifs au texte. Par conséquent, vjust
est responsable de l'alignement horizontal.
Sans vjust = 0.5
cela ressemblerait à ceci :
q + theme(axis.text.x = element_text(angle = 90, hjust = 1))
Sans hjust = 1
cela ressemblerait à ceci :
q + theme(axis.text.x = element_text(angle = 90, vjust = 0.5))
Si pour une raison (étrange) vous vouliez faire pivoter les étiquettes des ticks de 90° dans le sens horaire (afin qu'elles puissent être lues depuis la gauche), vous devriez utiliser : q + theme(axis.text.x = element_text(angle = -90, vjust = 0.5, hjust = -1))
.
Tout cela a déjà été discuté dans les commentaires de cette réponse mais je reviens souvent à cette question, je veux donc une réponse que je peux simplement copier sans lire les commentaires.
6 votes
Comme ggplot 3.3.0 est maintenant sorti, à mon avis, la réponse acceptée devrait être changée en celle de jan-glx.