colorspace - scale in r
Forzar el texto del eje X para todas las facetas de un diagrama de facet_grid (2)
El script puede ser mucho más simple utilizando cbind.gtable
:
library(gtable)
g <- ggplotGrob(p)
# locate the panels
panels <- grep("panel", g$layout$name)
top <- unique(g$layout$t[panels])
# intersperse a copy of the bottom axes
all <- gtable:::cbind.gtable(
g[seq.int(min(top)), ],
g[max(top)+1,],
g[seq(min(top)+1, nrow(g)),],
size = "first")
grid.newpage()
grid.draw(all)
Tengo el mismo problema que este usuario : me gustaría hacer un diagrama de facet_grid
con un eje x discreto, y me gustaría que las etiquetas del eje x se escribieran debajo de cada faceta en lugar de solo debajo de la fila inferior de facetas Por ejemplo:
# Drop some factor levels to make the plot smaller
diamondSub <- subset(diamonds, (cut=="Ideal" | cut=="Premium") &
(color=="E" | color=="I"))
# Note that scales="free_x" has no practical effect here
ggplot(diamondSub, aes(x=clarity, y=price)) +
geom_blank()+
geom_boxplot() +
facet_grid(cut~color, scales="free_x")
Sin embargo, prefiero no usar la solución de esa publicación, que fue solo para usar facet_wrap
lugar de facet_grid
, porque prefiero la forma en que facet_grid
etiqueta el texto de la tira con una variable en la parte superior de las columnas y la otra variable en la lados de las filas.
¿Hay una manera de obtener etiquetas de eje x bajo cada faceta, cuando todos los ejes x son en realidad iguales, usando facet_grid
?
Puede insertar una copia de los ejes dentro de la tabla,
library(gtable)
g <- ggplotGrob(p)
# locate the panels
panels <- grep("panel", g$layout$name)
top <- unique(g$layout$t[panels])
# intersperse a copy of the bottom axes
all <- gtable:::rbind_gtable(gtable:::rbind_gtable(g[seq.int(min(top)), ],
g[max(top)+1,], "first"),
g[seq(min(top)+1, nrow(g)),], "first")
grid.newpage()
grid.draw(all)