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.