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.

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 .


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í .


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í.

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.