Contrôle de la taille de la police ggplot geom_text

J’ai essayé de changer la police à 10 pour les étiquettes de ma barre graphique 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 super grande pour les étiquettes à 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 d’étiquette est encore plus grande …

Je peux changer la taille dans geom_text à quelque chose comme 3 et maintenant il ressemble à la police 10, similaire aux étiquettes d’axe.

Je me demande ce qui se passe? Le 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 de theme(text=element_text()) ?

Voici quelques options pour modifier 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 dans geom_text modifie 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 un rapport de ~ (14/5) pour les tailles de geom_text tailles de theme .

Donc, un horrible correctif pour des tailles uniformes est à l'échelle par 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")) 

Ceci bien sûr n'explique pas pourquoi? et est un pita (et je suppose qu'il y a une manière plus sensée de le faire)