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.

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 .


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 .


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.

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)))

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.