superponer - ¿Cómo puedo manipular el texto de la tira de los gráficos facet_grid?
superponer graficas en r (3)
Hoy en día, el uso de opts
y theme_text
parece estar en desuso. R sugiere usar theme
y element_text
. Una solución a la respuesta se puede encontrar aquí: http://wiki.stdout.org/rcookbook/Graphs/Facets%20%28ggplot2%29/#modifying-facet-label-text
qplot(hwy, cty, data = mpg) +
facet_grid(. ~ manufacturer) +
theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))
Me pregunto cómo puedo manipular el tamaño del texto de la tira en tramas facetadas. Mi pregunta es similar a una pregunta sobre los títulos de la trama , pero específicamente me preocupa no manipular el título de la trama sino el texto que aparece en los títulos de las facetas (strip_h).
Como ejemplo, considere el conjunto de datos de mpg.
library(ggplot2)
qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)
La output resultante produce algunos títulos de facetas que no caben en la tira.
Estoy pensando que debe haber una forma de usar la grid
para manejar el texto de la tira. Pero todavía soy novato y no estaba seguro del apéndice de la grid
en el libro de Hadley cómo, precisamente, hacerlo. Además, temía que si lo hacía mal rompería mi lavadora, ya que creo que toda la tecnología está conectada a través de The Force :-(
Muchas gracias de antemano.
Puede modificar strip.text.x
(o strip.text.y
) usando theme_text()
, por ejemplo
qplot(hwy, cty, data = mpg) +
facet_grid(. ~ manufacturer) +
opts(strip.text.x = theme_text(size = 8, colour = "red", angle = 90))
Actualización: para la versión de ggplot2> 0.9.1
qplot(hwy, cty, data = mpg) +
facet_grid(. ~ manufacturer) +
theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))
Supongo que en el ejemplo del cambio de mpg
el ángulo de rotación y el tamaño de la fuente es bueno, pero en muchos casos puede encontrarse con variables que tienen etiquetas bastante largas, y puede convertirse en un dolor en el cuello (literalmente) intentar leer girado a lo largo etiquetas.
Entonces, además (o como complemento) a los ángulos y tamaños cambiantes, generalmente vuelvo a formatear las etiquetas de los factores que definen a facet_grid
siempre que puedan dividirse de una manera que tenga sentido.
Normalmente, si tengo una dataset$variable
con cadenas que se parece a
c("median_something", "aggregated_average_x","error","something_else")
Simplemente lo hago:
reformat <– function(x,lab="/n"){ sapply(x, function(c){ paste(unlist(strsplit(as.character(c) , split="_")),collapse=lab) }) }
[tal vez hay mejores definiciones de reformat
pero al menos esta funciona bien.]
dataset$variable <- factor(dataset$variable, labels=reformat(dataset$variable, lab=''/n'')
Y al facetar, todas las etiquetas serán muy legibles:
ggplot(data=dataset, aes(x,y)) + geom_point() + facet_grid(. ~ variable)