Je trace un graphique avec une variable catégorique sur l'axe des x et une variable numérique sur l'axe des y.
Pour l'axe x, étant donné qu'il existe de nombreux points de données, la mise en forme du texte par défaut fait que l'étiquette de chaque graduation se superpose aux autres étiquettes. Comment est-ce que je (a) change la taille de la police de mon texte d'axe et (b) change l'orientation du texte de sorte que le texte 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
Il y a beaucoup de bonnes informations sur la façon de formater vos ggplots ici . Vous pouvez voir une liste complète des paramètres que vous pouvez modifier (en gros, tous) à l’aide de ?theme
.
Idem @Drew Steen sur l'utilisation de theme()
. Voici les attributs de thème communs pour le texte de l’axe 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"))
En ajoutant aux solutions précédentes, vous pouvez également spécifier la taille de la police relative au base_size
inclus dans les thèmes tels que theme_bw()
(où base_size
est 11) à l'aide du rel()
function.
Par exemple:
ggplot(mtcars, aes(disp, mpg)) +
geom_point() +
theme_bw() +
theme(axis.text.x=element_text(size=rel(0.5), angle=90))
Utilisez le thème ():
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))
Utiliser l'attribut "Remplir" aide dans de tels cas. Vous pouvez supprimer le texte de l'axe à l'aide de element_blank()
et afficher un graphique à barres multicolore avec une légende. Je trace une fréquence d'enlèvement de pièce dans un atelier de réparation comme ci-dessous
ggplot(data=df_subset,aes(x=Part,y=Removal_Frequency,fill=Part))+geom_bar(stat="identity")+theme(axis.text.x = element_blank())
Dans mon cas, j’ai opté pour cette solution car j’avais beaucoup de barres dans le graphique à barres et je n’étais pas en mesure de trouver une taille de police appropriée, lisible et suffisamment petite pour ne pas se chevaucher.
Lors de la création de plusieurs parcelles, il est judicieux de la définir globalement (la partie pertinente est la deuxième ligne, trois lignes ensemble constituent un exemple de travail):
library('ggplot2')
theme_update(text = element_text(size=20))
ggplot(mpg, aes(displ, hwy, colour = class)) + geom_point()