Crear diagramas de caja lado a lado en R
-
Utilice la función
par
para crear diagramas de caja lado a lado en R -
Utilice la función
grid.arrange
para 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))
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)
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)
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)))
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