He estado leyendo la ggplot2documentació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_wraptambié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 devariabledistribuido horizontalmente.facet_grid(variable~.)devolverá facetas iguales a los niveles devariabledistribuido 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.tableydir.ncolynrowcontrole cuántas columnas y filas (solo necesita establecer una).as.tablecontrola 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.dircontrola 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_gridfuente