Aumente a distância entre o texto e o título no eixo y

107

O título do eixo y aparece muito perto do texto do eixo.

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

saída ggplot

Tentei alterar o valor de muitos parâmetros com, theme()mas nenhum parece ajudar.

Ernest A
fonte

Respostas:

171

De ggplot2 2.0.0você pode usar o margin =argumento de element_text()para alterar a distância entre o título do eixo e os números. Definir os valores da marginsobre top, right, bottom, e llado EFT do elemento.

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

margintambém pode ser usado para outros element_textelementos (consulte Recursos ?theme), como axis.text.x, axis.text.ye title.

Didzis Elferts
fonte
4
Este método não parece funcionar facet_grid, enquanto a resposta sugerida por Adam B sim (ou seja, uma quebra de linha usando \ n)
Anônimo
@Anonymous Você pode dar um exemplo em que este margin =argumento não funciona?
Didzis Elferts
Eu tentei com theme_bw. Desculpe, postar o código inteiro está ilegível / confuso ...
Anônimo
3
@Anonymous Se você usar, theme_bw()então theme_bw()deve ser usado antes da theme()função, porque em temas predefinidos já existe um argumento para títulos de eixo.
Didzis Elferts
Obrigado pelo esclarecimento!
Anônimo
97

Com base nesta postagem do fórum: https://groups.google.com/forum/#!topic/ggplot2/mK9DR3dKIBU

Parece que a coisa mais fácil a fazer é adicionar uma quebra de linha (\ n) antes do eixo xe após os rótulos do eixo y. Parece muito mais fácil (embora mais burro) do que as soluções postadas acima.

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

Espero que ajude!

Adam B
fonte
4
Normalmente uso este método, é muito mais rápido e não requer a adição de outra opção ao ggplot, a menos que eu precise de alguns ajustes específicos.
R. Prost