Cambiar el tamaño del título de los ejes y las etiquetas en ggplot2

145

Tengo una pregunta realmente simple, a la que me cuesta encontrar la respuesta. Esperaba que alguien aquí pudiera ayudarme.

A continuación se presenta un marco de datos de ejemplo:

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

Solo quiero aprender cómo cambio el tamaño del texto de los títulos de los ejes y las etiquetas de los ejes.

KT_1
fuente

Respuestas:

313

Puede cambiar el texto del eje y el tamaño de la etiqueta con argumentos axis.text=y axis.title=en función theme(). Si necesita, por ejemplo, cambiar solo el tamaño del título del eje x, luego use axis.title.x=.

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

Hay buenos ejemplos sobre la configuración de diferentes theme()parámetros en la página ggplot2 .

Didzis Elferts
fuente
8
También hay una función muy intuitiva rel()ahora. por ejemplosize = rel(2.0)
HongboZhu
2
¿Cómo cambiaría el labs(x = "x axis")tamaño del texto sin cambiar el valor de los ticks del eje x?
baxx
53

Creo que una mejor manera de hacer esto es cambiar el base_sizeargumento. Aumentará los tamaños de texto de manera consistente.

g + theme_grey(base_size = 22)

Como se ve aquí .

chunjiw
fuente
55
Si ya tiene otras themeinstancias, esto puede causar conflictos.
Adam Erickson
10

Si está creando muchos gráficos, podría estar cansado de escribir para cada gráfico las líneas de código que controlan el tamaño de los títulos y textos. Lo que normalmente hago es crear un objeto (de la clase "tema" "gg") que definió las características del tema deseado. Puede hacerlo al comienzo de su 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))

A continuación, todo lo que tendrá que hacer es agregar My_Theme a sus gráficos.

g + My_Theme
si tienes otro gráfico, g1, solo escribe:
g1 + My_Theme 
y así.
Rist
fuente
4

Para cambiar el tamaño de (casi) todos los elementos de texto, en un solo lugar y sincrónicamente, rel()es bastante eficiente:
g+theme(text = element_text(size=rel(3.5))

Es posible que desee ajustar un poco el número, para obtener el resultado óptimo. Establece las etiquetas y títulos de los ejes horizontal y vertical, y otros elementos de texto, en la misma escala. Una excepción son los títulos de cuadrículas facetadas que deben establecerse manualmente en el mismo valor, por ejemplo, si se utilizan las facetas x e y en un 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
fuente