Estoy tratando de usar facet_grid
o facet_wrap
junto con geom_raster
. Sin embargo, en cada panel, la estética z
está en una escala diferente. Por ejemplo,Múltiples leyendas para la misma estética
##Data at end of question
ggplot(dd, aes(x,y)) +
geom_raster(aes(fill=z)) +
facet_grid(type ~ var)
da
.
Sin embargo, dado que los valores promedio de C y D son alrededor de 0 y 100 respectivamente, perdemos mucha resolución. También puede probar:
##Change C to D to get other panel
ggplot(subset(dd, var=="C"), aes(x,y))+
geom_raster(aes(fill=z)) +
facet_grid(type ~ var) +
theme(legend.position="bottom")
que da
y
pero ahora tengo dos tiras y.
Pregunta
- ¿Puedo modificar la primera parcela para dar dos leyendas de la
fill
estética? - O, si hago dos gráficos separados, ¿puedo quitar la tira y en uno de los trazados para permitir que los presione juntos? Al jugar con el tema, sugiere que esto no es posible.
datos
datos para reproducir gráficos
dd = expand.grid(x=1:10, y=1:10)
dd = data.frame(dd, type=rep(LETTERS[1:2], each=100),
var =rep(c("C", "D"), each=200))
dd$z = rnorm(400, rep(c(0, 100), each=200))
Gracias. ¿Jugar con 'plot.margin' me permitiría obtener ambas tramas del mismo tamaño? Justo ahora el área de trazado de la izquierda es más pequeña que la de la derecha. – csgillespie
@csgillespie, parece que sí, edité la respuesta, se ve mejor ahora. – Julius
Gracias. Esa es casi la misma solución que se me ocurrió, ** pero ** no pensé en cambiar la etiqueta del panel del lateral de la pantalla, ordenada. La solución es un poco hacky, pero sospecho que es la mejor solución. Por cierto, el uso de '+ ylab (NULL)' no muestra ninguna etiqueta del eje y, lo que puede hacer las cosas un poco más fáciles. Gracias. – csgillespie