Alterar o tamanho do título e dos rótulos dos eixos no ggplot2

145

Eu tenho uma pergunta muito simples, para a qual estou lutando para encontrar a resposta. Eu esperava que alguém aqui pudesse me ajudar.

Um exemplo de quadro de dados é apresentado abaixo:

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

Eu só quero aprender como altero o tamanho do texto dos títulos e dos rótulos dos eixos.

KT_1
fonte

Respostas:

313

Você pode alterar o tamanho do texto e do rótulo do eixo com argumentos axis.text=e axis.title=em função theme(). Se você precisar, por exemplo, alterar apenas o tamanho do título do eixo x, use axis.title.x=.

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

Existem bons exemplos sobre a configuração de theme()parâmetros diferentes na página ggplot2 .

Didzis Elferts
fonte
8
Há também uma função muito intuitiva rel()agora. por exemplosize = rel(2.0)
HongboZhu
2
como alguém alteraria o labs(x = "x axis")tamanho do texto sem alterar o valor das marcações do eixo x?
Baxx
53

Eu acho que a melhor maneira de fazer isso é mudar o base_sizeargumento. Aumentará os tamanhos do texto de forma consistente.

g + theme_grey(base_size = 22)

Como visto aqui .

chunjiw
fonte
5
Se você já possui outras themeinstâncias, isso pode causar conflitos.
Adam Erickson
10

Se você estiver criando muitos gráficos, pode estar cansado de digitar para cada gráfico as linhas de código que controlam o tamanho dos títulos e textos. O que normalmente faço é criar um objeto (da classe "theme" "gg") que define as características desejadas do tema. Você pode fazer isso no início do seu código.

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

Em seguida, tudo o que você precisará fazer é adicionar My_Theme aos seus gráficos.

g + My_Theme
se você tiver outro gráfico, g1, basta escrever:
g1 + My_Theme 
e assim por diante.
Rtist
fonte
4

Alterar o tamanho de (quase) todos os elementos de texto, em um só lugar e de forma síncrona, rel()é bastante eficiente:
g+theme(text = element_text(size=rel(3.5))

Você pode ajustar um pouco o número para obter o melhor resultado. Ele define os rótulos e títulos dos eixos horizontal e vertical e outros elementos de texto na mesma escala. Uma exceção são os títulos de grades facetadas que devem ser configurados manualmente com o mesmo valor, por exemplo, se as facetas x e y forem usadas em um gráfico:
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)))

InterestedInR
fonte