Crear diagramas de caja lado a lado en R

Jinku Hu 15 febrero 2024
  1. Utilice la función par para crear diagramas de caja lado a lado en R
  2. Utilice la función grid.arrange para crear diagramas de caja lado a lado en R
Crear diagramas de caja lado a lado en R

Este artículo presentará métodos para crear diagramas de caja uno al lado del otro en R.

Utilice la función par para crear diagramas de caja lado a lado en R

La función par se puede utilizar para configurar parámetros gráficos. Llamar a la función sin argumentos o no.readonly = TRUE recupera todos los parámetros gráficos. En este caso, utilizamos el parámetro mfrow para construir diagramas de caja lado a lado. mfrow se pasa en el vector c(nr, nc), y los gráficos posteriores se dibujan como matriz nr -by- nc. El siguiente código de ejemplo construye dos diagramas de caja a partir del conjunto de datos InsectSprays, donde las columnas count y spray se trazan en consecuencia. Aunque una revisión en profundidad de la función boxplot está más allá del alcance de este artículo, se necesita el argumento col para especificar el color de los cuerpos de las cajas. Observe que la última llamada a la función par(mfrow=c(1,1)) se utiliza para restablecer el diseño a la configuración predeterminada.

par(mfrow=c(1,2))
boxplot(count ~ spray, data = InsectSprays, col = "pink")
boxplot(count ~ spray, data = InsectSprays, col = "yellow")
par(mfrow=c(1,1))

diagrama de caja lado a lado r 1

Utilice la función grid.arrange para crear diagramas de caja lado a lado en R

Alternativamente, podemos usar la función grid.arrange del paquete gridExtra. grid.arrange se comporta de forma similar a la función par. Aún así, es más flexible e intuitivo con múltiples gráficos, especialmente objetos ggplot. grid.arrange toma una longitud variable de objetos ggplot como argumentos iniciales. Después, podemos especificar argumentos opcionales, a saber, el parámetro ncol que denota el número de columnas que deben crearse para los gráficos. El siguiente fragmento de código dibuja dos diagramas de caja uno al lado del otro.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
grid.arrange(plot1, plot2, ncol = 2)

diagrama de caja lado a lado r 2

grid.arrange también puede crear ventanas divididas bidimensionales especificadas usando los parámetros nrow y ncol. Observe que los objetos ggplot se pueden combinar en una lista y pasar en la forma del argumento grobs = list(...). El siguiente ejemplo genera cuatro diagramas de caja en un estilo de array de dos por dos.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
plot3 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "orange")
plot4 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "cyan")
grid.arrange(plot1, plot2, plot3, plot4, nrow = 2, ncol = 2)

diagrama de caja lado a lado r 3

Otro parámetro útil para la función grid.arrange es layout_matrix, que coloca cada gráfico en una estructura personalizada especificada con vectores combinados. El ejemplo define tres objetos de diagrama diferentes construidos en una estructura de ventana asimétrica: dos diagramas en la parte superior y uno en la parte inferior. El número de vectores en rbind corresponde a las filas de la ventana, y los elementos de cada objeto especifican el número de partes en las que debe dividirse la fila de la ventana dada. Mientras tanto, los números corresponden a los gráficos de argumentos en el mismo orden. Si todas las ventanas divididas en la segunda fila deben estar ocupadas por el tercer gráfico, entonces todos los elementos del segundo vector deben tener un valor - 3.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(mtcars, aes(x = mpg)) + geom_histogram(fill = "yellow", bins = 30)
plot3 <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(fill = "orange")

grid.arrange(plot1, plot2, plot3, widths = c(2, 2, 1),
    layout_matrix = rbind(c(1, 2, 2), c(3, 3, 3)))

diagrama de caja lado a lado r 4

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - R Plot