Changer la taille du titre et des étiquettes des axes dans ggplot2


146

J'ai une question très simple, à laquelle j'ai du mal à trouver la réponse. J'espérais que quelqu'un ici pourrait m'aider.

Un exemple de dataframe est présenté ci-dessous:

a <- c(1:10)
b <- c(10:1)
df <- data.frame(a,b)
library(ggplot2)
g = ggplot(data=df) + geom_point(aes(x=a, y=b)) +
  xlab("x axis")
g

Je veux juste savoir comment je change la taille du texte des titres des axes et des étiquettes des axes.

Réponses:


314

Vous pouvez modifier le texte de l'axe et la taille de l'étiquette avec des arguments axis.text=et axis.title=en fonction theme(). Si vous avez besoin, par exemple, de ne modifier que la taille du titre de l'axe des x, puis utilisez axis.title.x=.

g+theme(axis.text=element_text(size=12),
        axis.title=element_text(size=14,face="bold"))

Il existe de bons exemples sur la configuration de différents theme()paramètres dans la page ggplot2 .


8
Il existe également une fonction très intuitive rel()maintenant. par exemplesize = rel(2.0)
HongboZhu

2
comment changer la labs(x = "x axis")taille du texte sans changer la valeur des graduations de l'axe x?
baxx

53

Je pense qu'une meilleure façon de faire est de changer l' base_sizeargument. Cela augmentera les tailles de texte de manière cohérente.

g + theme_grey(base_size = 22)

Comme vu ici .


5
Si vous avez déjà d'autres themeinstances, cela peut provoquer des conflits.
Adam Erickson

10

Si vous créez de nombreux graphiques, vous pourriez être fatigué de taper pour chaque graphique les lignes de code contrôlant la taille des titres et des textes. Ce que je fais généralement est de créer un objet (de classe "theme" "gg") qui définit les caractéristiques de thème souhaitées. Vous pouvez le faire au début de votre code.

My_Theme = theme(
  axis.title.x = element_text(size = 16),
  axis.text.x = element_text(size = 14),
  axis.title.y = element_text(size = 16))

Ensuite, tout ce que vous aurez à faire est d'ajouter My_Theme à vos graphiques.

g + My_Theme
si vous avez un autre graphe, g1, écrivez simplement:
g1 + My_Theme 
etc.

4

Changer la taille de (presque) tous les éléments de texte, en un seul endroit et de manière synchrone, rel()est assez efficace:
g+theme(text = element_text(size=rel(3.5))

Vous voudrez peut-être modifier un peu le nombre pour obtenir le résultat optimal. Il définit les étiquettes et les titres des axes horizontal et vertical, ainsi que les autres éléments de texte, sur la même échelle. Une exception concerne les titres des grilles à facettes qui doivent être définis manuellement sur la même valeur, par exemple si les facettes x et y sont utilisées dans un graphique:
theme(text = element_text(size=rel(3.5)), strip.text.x = element_text(size=rel(3.5)), strip.text.y = element_text(size=rel(3.5)))

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.