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 les autres étiquettes. Comment puis-je (a) modifier la taille de la police pour le texte de l'axe et (b) modifier l'orientation du texte pour qu'il soit perpendiculaire à l'axe ?
Utilisez theme()
:
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10))
ggplot(d, aes(x=x, y=y)) + geom_point() +
theme(text = element_text(size=20),
axis.text.x = element_text(angle=90, hjust=1))
#vjust adjust the vertical justification of the labels, which is often useful
! [entrez la description de l'image ici] [1]
Il y a beaucoup de bonnes informations sur la façon de formater vos ggplots [ici][2]. Vous pouvez voir une liste complète des paramètres que vous pouvez modifier (en gros, tous) en utilisant ?theme
.
[1] : http://i.stack.imgur.com/Ydn6G.png [2] : http://www.cookbook-r.com/Graphs/
Idem @Drew Steen sur l'utilisation de theme()
. Voici des attributs de thème communs pour le texte des axes et les titres.
ggplot(mtcars, aes(x = factor(cyl), y = mpg))+
geom_point()+
theme(axis.text.x = element_text(color = "grey20", size = 20, angle = 90, hjust = .5, vjust = .5, face = "plain"),
axis.text.y = element_text(color = "grey20", size = 12, angle = 0, hjust = 1, vjust = 0, face = "plain"),
axis.title.x = element_text(color = "grey20", size = 12, angle = 0, hjust = .5, vjust = 0, face = "plain"),
axis.title.y = element_text(color = "grey20", size = 12, angle = 90, hjust = .5, vjust = .5, face = "plain"))
L'utilisation de l'attribut "fill" ; est utile dans des cas comme celui-ci. Vous pouvez supprimer le texte de l'axe en utilisant element_blank()
et afficher un graphique à barres multicolore 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 diagramme à barres et je n'ai pas réussi à trouver une taille de police appropriée qui soit à la fois lisible et suffisamment petite pour ne pas se chevaucher.