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.
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 space
que 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))
(simplificado) Ejemplo tomado de ?facet_grid