Crea boxplot affiancati in R

Jinku Hu 30 gennaio 2023
  1. Usa la funzione par per creare boxplot affiancati in R
  2. Usa la funzione grid.arrange per creare boxplot affiancati in R
Crea boxplot affiancati in R

Questo articolo introdurrà i metodi per creare boxplot affiancati in R.

Usa la funzione par per creare boxplot affiancati in R

La funzione par può essere utilizzata per impostare i parametri grafici. Chiamando la funzione senza argomenti o no.readonly = TRUE si recuperano tutti i parametri grafici. In questo caso, utilizziamo il parametro mfrow per costruire boxplot affiancati. mfrow viene passato nel vettore c(nr, nc) e i grafici successivi vengono disegnati come array nr-by-nc. Il codice di esempio seguente costruisce due boxplot dal set di dati InsectSprays, dove le colonne count e spray sono tracciate di conseguenza. Anche se una revisione approfondita della funzione boxplot va oltre lo scopo di questo articolo, è necessario l’argomento col per specificare il colore dei corpi dei riquadri. Si noti che l’ultima chiamata alla funzione par(mfrow=c(1,1)) viene utilizzata per ripristinare il layout all’impostazione predefinita.

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

boxplot affiancato r 1

Usa la funzione grid.arrange per creare boxplot affiancati in R

In alternativa, possiamo usare la funzione grid.arrange dal pacchetto gridExtra. grid.arrange si comporta in modo simile alla funzione par. Tuttavia, è più flessibile e intuitivo con più grafici, in particolare gli oggetti ggplot. grid.arrange prende una lunghezza variabile di oggetti ggplot come argomenti iniziali. Successivamente, possiamo specificare argomenti opzionali, vale a dire il parametro ncol che indica il numero di colonne che devono essere create per i grafici. Il prossimo frammento di codice disegna due boxplot affiancati.

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)

boxplot affiancato r 2

grid.arrange può anche creare finestre divise bidimensionali specificate utilizzando entrambi i parametri nrow e ncol. Nota che gli oggetti ggplot possono essere combinati in una lista e passati sotto forma di argomento grobs = list(...). L’esempio seguente restituisce quattro grafici a scatole in uno stile matrice due per due.

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)

boxplot affiancato r 3

Un altro parametro utile per la funzione grid.arrange è layout_matrix, che posiziona ogni grafico in una struttura personalizzata specificata con vettori combinati. L’esempio definisce tre diversi oggetti del grafico costruiti in una struttura di finestra asimmetrica: due grafici in alto e uno in basso. Il numero di vettori in bind corrisponde alle righe della finestra e gli elementi in ciascun oggetto specificano il numero di parti in cui deve essere suddivisa la riga della finestra data. Nel frattempo, i numeri corrispondono ai grafici degli argomenti nello stesso ordine. Se tutte le finestre divise sulla seconda riga devono essere occupate dal terzo grafico, allora tutti gli elementi nel secondo vettore dovrebbero avere un valore - 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)))

boxplot affiancato r 4

Autore: 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

Articolo correlato - R Plot