/ / ¿Cómo 1) separar los títulos de facetas largas en ggplot2, y 2) cambiar el orden de las columnas en el eje x? - r, ggplot2

¿Cómo 1) separar títulos de facetas largas en ggplot2, y 2) cambiar el orden de las columnas en el eje x? - r, ggplot2

Soy un nuevo usuario de R Así que tengo estos datos de proteómica con más de 100 niveles de proteínas medidos en 10 pacientes en 3 puntos temporales diferentes. Para cada una de estas más de 100 proteínas, he usado ggplot2 para hacer una faceta de boxplot (x = punto de tiempo, y = nivel de expresión). El problema es que los nombres de las proteínas (títulos de las facetas) son muy largos, por lo que se superponen con los que están a su lado. Debido a que hay muchos de ellos, realmente no puedo usar "n" manualmente para separarlos en dos filas. ¿Hay alguna forma inteligente de hacerlo?

Además, quería cambiar el orden de los tres puntos de tiempo en el eje x. Originalmente se mostraba en orden alfabético, pero quería que tuviera más importancia biológica.

Muchas gracias de antemano.

Respuestas

1 para la respuesta № 1

¿Es esto lo que tenías en mente?

set.seed(1)
# make up some data...
long.names <- c("Very Long Facet Label","Very, Very, Extremely Long Facet Label")
gg <- data.frame(x=rep(LETTERS[1:6],each=10),y=rnorm(120), z=rep(long.names,each=60))

library(ggplot2)
ggplot(gg) + geom_boxplot(aes(x,y))+facet_grid(.~z)

gg$x.ordered=factor(gg$x,levels=LETTERS[6:1])
gg$wrap <- sapply(strwrap(gg$z,20,simplify=F),paste,collapse="n") # word wrap
ggplot(gg) + geom_boxplot(aes(x.ordered,y))+ facet_grid(.~wrap)