Saltar al contenido

¿Cuál es la diferencia entre facet_wrap() y facet_grid() en ggplot2?

Este artículo fue evaluado por especialistas así se asegura la veracidad de nuestro tutorial.

Solución:

La respuesta a continuación se refiere al caso cuando tiene 2 argumentos en facet_grid() o facet_wrap().

facet_grid(x ~ y) mostrará x*y incluso si algunas parcelas están vacías. Ex:

library(ggplot2)
g <- ggplot(mpg, aes(displ, hwy))

Hay 4 cilindros distintos y 7 valores de clase distintos.

g + geom_point(alpha=1/3) + facet_grid(cyl~class)

Lo anterior muestra 4 * 7 = 28 parcelas, incluso si algunas están vacías (porque algunas clases no tienen valores de cilindro correspondientes, como las filas que no tienen ningún valor cyl="5" correspondiente)
facet_wrap(x ~ y) por otro lado, muestra solo las parcelas que tienen valores reales.

g + geom_point(alpha=1/3) + facet_wrap(cyl~class)

Ahora se muestran 19 gráficos, uno para cada combinación de cilindro y clase.

facet_wrap(...) cuerdas juntas ggplots en diferentes marcos (facetas) basados ​​en una sola variable. facet_grid(...) puede tomar dos variables:

p + facet_grid(cyl~class)

También puede utilizar una tercera variable para agrupar en cada faceta:

qplot(displ, hwy, data=mpg,color=factor(year)) + facet_grid(cyl~class)

muestra la mejora (o la falta de ella) en el kilometraje en carretera frente al desplazamiento por #cilindros y clase.

Citando principalmente del libro ggplot2, p. 148f.

Hay tres tipos de facetas:

  • facet_null() : una sola trama, el valor predeterminado.
  • facet_wrap() : "envuelve" una cinta 1d de paneles en 2d.
  • facet_grid() : produce una cuadrícula 2d de paneles definidos por variables que forman las filas y columnas.

ingrese la descripción de la imagen aquí

Envoltura de facetas

facet_wrap() hace una larga cinta 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 cómo se envuelve la cinta en una cuadrícula con ncol, nrow,
as.table y dir. ncol y nrow controle cuántas columnas y filas (solo necesita configurar una). as.table controla si las facetas se disponen como una tabla (TRUE), con los valores más altos en la parte inferior derecha, o una gráfica (FALSE), con los valores más altos en la parte superior derecha. dir controla la dirección de la envoltura:
hhorizontales o vertico

Cuadrícula de facetas

De ?facet_grid : facet_grid() forma una matriz de paneles definidos por variables de facetado de fila y columna. 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", por ejemplo a + b ~ c + d.

facet grid() tiene un parámetro adicional llamado spaceque toma los mismos valores que scales.

# 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))

ingrese la descripción de la imagen aquí

(simplificado) Ejemplo tomado de ?facet_grid

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *