Augmenter la distance entre le texte et le titre sur l'axe des y

108

Le titre de l'axe des y apparaît trop près du texte de l'axe.

ggplot(mpg, aes(cty, hwy)) + geom_point()

sortie ggplot

J'ai essayé de changer la valeur de nombreux paramètres avec theme()mais aucun ne semble aider.

Ernest A
la source

Réponses:

171

De, ggplot2 2.0.0vous pouvez utiliser l' margin =argument de element_text()pour modifier la distance entre le titre de l'axe et les nombres. Définissez les valeurs du marginsur top, right, bOttom et lcôté TEF de l'élément.

ggplot(mpg, aes(cty, hwy)) + geom_point()+
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0)))

marginpeut également être utilisé pour d'autres element_textéléments (voir ?theme), tels que axis.text.x, axis.text.yet title.

Didzis Elferts
la source
4
Cette méthode ne semble pas fonctionner avec facet_grid, alors que la réponse suggérée par Adam B le fait (c'est-à-dire un saut de ligne en utilisant \ n)
Anonyme
@Anonymous Pouvez-vous donner un exemple où cet margin =argument ne fonctionne pas?
Didzis Elferts
J'ai essayé avec theme_bw. Désolé, la publication de tout le code est illisible / désordonnée ...
Anonyme
3
@Anonymous Si vous utilisez theme_bw()alors theme_bw()doit être utilisé avant la theme()fonction car dans les thèmes prédéfinis, il y a déjà un argument pour les titres des axes.
Didzis Elferts
Merci pour la clarification!
Anonyme
97

Basé sur ce message de forum: https://groups.google.com/forum/#!topic/ggplot2/mK9DR3dKIBU

On dirait que la chose la plus simple à faire est d'ajouter un saut de ligne (\ n) avant votre axe x et après vos étiquettes d'axe y. Cela semble beaucoup plus facile (bien que plus stupide) que les solutions affichées ci-dessus.

ggplot(mpg, aes(cty, hwy)) + 
    geom_point() + 
    xlab("\nYour_x_Label") + ylab("Your_y_Label\n")

J'espère que cela pourra aider!

Adam B
la source
4
J'utilise habituellement cette méthode, c'est beaucoup plus rapide et il n'est pas nécessaire d'ajouter une autre option à ggplot, sauf si j'ai besoin de quelques ajustements spécifiques.
R. Prost