tipo - Cambiar el tamaño de la fuente y la dirección del texto de los ejes en ggplot2
tamaño de letra en ggplot2 (5)
Estoy trazando un gráfico con una variable categórica en el eje xy una variable numérica en el eje y.
Para el eje x, dado que hay muchos puntos de datos, el formato de texto predeterminado hace que la etiqueta de cada marca coincida con otras etiquetas. ¿Cómo (a) cambio el tamaño de la fuente para el texto de mi eje y (b) cambio la orientación del texto para que el texto sea perpendicular al eje?
Agregando a soluciones anteriores, también puede especificar el tamaño de fuente relativo al tamaño de base_size
incluido en temas tales como theme_bw()
(donde base_size
es 11) usando la función rel()
.
Por ejemplo:
ggplot(mtcars, aes(disp, mpg)) +
geom_point() +
theme_bw() +
theme(axis.text.x=element_text(size=rel(0.5), angle=90))
Ditto @Drew Steen sobre el uso del theme()
. Aquí hay atributos de tema comunes para el texto del eje y los títulos.
ggplot(mtcars,aes(x=factor(cyl),y=mpg))+
geom_point()+
theme(axis.text.x = element_text(colour="grey20",size=20,angle=90,hjust=.5,vjust=.5,face="plain"),
axis.text.y = element_text(colour="grey20",size=12,angle=0,hjust=1,vjust=0,face="plain"),
axis.title.x = element_text(colour="grey20",size=12,angle=0,hjust=.5,vjust=0,face="plain"),
axis.title.y = element_text(colour="grey20",size=12,angle=90,hjust=.5,vjust=.5,face="plain"))
El uso del atributo "fill" ayuda en casos como este. Puede eliminar el texto del eje utilizando element_blank()
y mostrar un gráfico de barras multicolor con una leyenda. Estoy trazando una frecuencia de eliminación de piezas en un taller de reparación de la siguiente manera
ggplot(data=df_subset,aes(x=Part,y=Removal_Frequency,fill=Part))+geom_bar(stat="identity")+theme(axis.text.x = element_blank())
Fui a buscar esta solución en mi caso ya que tenía muchas barras en el gráfico de barras y no pude encontrar un tamaño de fuente adecuado que sea legible y también lo suficientemente pequeño como para no superponerse entre sí.
Use el tema ():
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10))
ggplot(d, aes(x=x, y=y)) + geom_point() +
theme(text = element_text(size=20))
Use el theme()
:
d <- data.frame(x=gl(10, 1, 10, labels=paste("long text label ", letters[1:10])), y=rnorm(10))
ggplot(d, aes(x=x, y=y)) + geom_point() +
theme(text = element_text(size=20),
axis.text.x = element_text(angle=90, hjust=1))
#vjust adjust the vertical justification of the labels, which is often useful
Hay mucha información buena sobre cómo formatear tus ggplots here . Puede ver una lista completa de parámetros que puede modificar (básicamente, todos) utilizando ?theme
.