He estado leyendo la ggplot2
documentación de ambas funciones. Me preguntaba cuáles eran las diferencias y cuál sería la situación correcta para usar cada función ( facet_wrap()
y facet_grid()
).
library(ggplot2)
p <- qplot(displ, hwy, data = mpg)
p + facet_wrap(~ cyl)
p + facet_grid(~ cyl)
Proporciono este pequeño ejemplo para que sirva de punto de partida. La diferencia parece ser que la envoltura hace que las parcelas sean más autónomas y la cuadrícula hace una parcela en conjunto.
fuente
facet_wrap
también puede tomar dos variables.Para gráficos de una sola variable, puede usar
facet_grid()
ofacet_wrap()
.facet_wrap(~variable)
devolverá una matriz simétrica de gráficos para el número de niveles devariable
.facet_grid(.~variable)
devolverá facetas iguales a los niveles devariable
distribuido horizontalmente.facet_grid(variable~.)
devolverá facetas iguales a los niveles devariable
distribuido verticalmente.fuente
facet_wrap(~variable)
y nofacet_wrap(variable~)
?Citando principalmente del libro ggplot2, p. 148f.
Hay tres tipos de facetas:
facet_null()
: un solo gráfico, el predeterminado.facet_wrap()
: "envuelve" una cinta de paneles 1d en 2d.facet_grid()
: produce una cuadrícula 2d de paneles definidos por variables que forman las filas y columnas.Envoltura de facetas
facet_wrap()
hace una cinta larga de paneles (generada por cualquier número de variables) y la envuelve en 2d. Esto es útil si tiene una sola variable con muchos niveles y desea organizar los gráficos de una manera más eficiente en cuanto al espacio.Puede controlar la forma en que la cinta se envuelve en una cuadrícula con
ncol
,nrow
,as.table
ydir
.ncol
ynrow
controle cuántas columnas y filas (solo necesita establecer una).as.table
controla si las facetas se presentan como una tabla (TRUE
), con los valores más altos en la parte inferior derecha, o un gráfico (FALSE
), con los valores más altos en la parte superior derecha.dir
controla la dirección de envoltura de: h orizontal o v ertical.Cuadrícula de facetas
Desde
?facet_grid
:facet_grid()
forma una matriz de paneles definidos por variables de facetas de filas y columnas. Es más útil cuando tiene dos variables discretas y todas las combinaciones de las variables existen en los datos.Puede usar múltiples variables en las filas o columnas, "agregándolas" juntas, por ejemplo
a + b ~ c + d
.facet grid()
tiene un parámetro adicional llamadospace
, que toma los mismos valores quescales
.# If scales and space are free, then the mapping between position # and values in the data will be the same across all panels. This # is particularly useful for categorical axes ggplot(subset(mpg, manufacturer %in% c("audi", "honda", "toyota")) , aes(drv, model)) + geom_point() + facet_grid(manufacturer ~ ., scales = "free", space = "free") + theme(strip.text.y = element_text(angle = 0))
(simplificado) Ejemplo tomado de
?facet_grid
fuente