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.

KT_1
la source

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 .

Didzis Elferts
la source
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 .

chunjiw
la source
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.
Rtist
la source
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)))

IntéresséInR
la source