J'ai essayé de changer la police à 10 pour les étiquettes de mon graphique en barres dans ggplot2
en faisant quelque chose comme ceci:
ggplot(data=file,aes(x=V1,y=V3,fill=V2)) +
geom_bar(stat="identity",position="dodge",colour="white") +
geom_text(aes(label=V2),position=position_dodge(width=0.9),
hjust=1.5,colour="white") +
theme_bw()+theme(element_text(size=10))
ggsave(filename="barplot.pdf",width=4,height=4)
mais l'image résultante a une taille de police très grande pour les étiquettes du tracé à barres.
Puis j'ai pensé à modifier dans geom_text()
avec ceci:
geom_text(size=10,aes(label=V2),position=position_dodge(width=0.9),
hjust=1.5,colour="white")
La police de l'étiquette est encore plus grande ...
Je peux changer la taille dans geom_text
à quelque chose comme 3 et maintenant cela ressemble à la police 10, similaire aux étiquettes d'axe.
Je me demande ce qui se passe theme(text=element_text(size=10))
ne s'applique-t-il pas aux étiquettes?
Et pourquoi la taille de 10 dans geom_text()
est différente de celle dans theme(text=element_text())
?
Voici quelques options pour changer les tailles de texte/étiquette
library(ggplot2)
# Example data using mtcars
a <- aggregate(mpg ~ vs + am , mtcars, function(i) round(mean(i)))
p <- ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) +
geom_bar(stat="identity",position="dodge") +
geom_text(data = a, aes(label = mpg),
position = position_dodge(width=0.9), size=20)
La size
du geom_text
change la taille des étiquettes geom_text
.
p <- p + theme(axis.text = element_text(size = 15)) # changes axis labels
p <- p + theme(axis.title = element_text(size = 25)) # change axis titles
p <- p + theme(text = element_text(size = 10)) # this will change all text size
# (except geom_text)
Pour cela Et pourquoi la taille de 10 dans geom_text () est différente de celle dans theme (text = element_text ())?
Oui, ils sont différents J'ai fait une vérification manuelle rapide et ils semblent être dans le rapport de ~ (14/5) pour les tailles geom_text
à theme
tailles.
Donc, une solution horrible pour les tailles uniformes est à l'échelle de ce rapport
geom.text.size = 7
theme.size = (14/5) * geom.text.size
ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) +
geom_bar(stat="identity",position="dodge") +
geom_text(data = a, aes(label = mpg),
position = position_dodge(width=0.9), size=geom.text.size) +
theme(axis.text = element_text(size = theme.size, colour="black"))
Bien sûr, cela n'explique pas pourquoi? et est un pita (et je suppose qu'il existe un moyen plus raisonnable de le faire)