boxplot() in R: come realizzare BoxGrafici in RStudio [Esempi]

boxplot() in R

boxplot() in R aiuta a visualizzare la distribuzione dei dati per quartile e a rilevare la presenza di valori anomali. Puoi usare l'oggetto geometrico geom_boxplot() dalla libreria ggplot2 per disegnare un boxplot() in R.

Utilizzeremo il dataset airquality per introdurre boxplot() in R con ggplot. Questo dataset misura la qualitร  dell'aria di New York da maggio a settembre 1973. Il dataset contiene 154 osservazioni. Utilizzeremo le seguenti variabili:

  • Ozono: variabile numerica
  • Vento: variabile numerica
  • Mese: da maggio a settembre. Variabile numerica

Crea Box Terreno

Prima di iniziare a creare il tuo primo boxplot() in R, devi manipolare i dati come segue:

  • Passaggio 1: importa i dati
  • Passaggio 2: eliminare le variabili non necessarie
  • Passaggio 3: convertire il mese a livello di fattore
  • Passaggio 4: crea una nuova variabile categoriale dividendo il mese con tre livelli: inizio, metร  e fine.
  • Passaggio 5: rimuovere le osservazioni mancanti

Tutti questi passaggi vengono eseguiti con dplyr e l'operatore pipeline %>%.

library(dplyr)
library(ggplot2)
# Step 1
data_air <- airquality % > %

#Step 2
select(-c(Solar.R, Temp)) % > %

#Step 3
mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")), 
       
#Step 4 
day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))

Una buona pratica รจ verificare la struttura dei dati con la funzione scorce().

glimpse(data_air)

Produzione:

## Observations: 153
## Variables: 5
## $ Ozone   <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ...
## $ Wind    <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6...
## $ Month   <ord> May, May, May, May, May, May, May, May, May, May, May,...
## $ Day     <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,...
## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...

Ci sono NA nel dataset. รˆ saggio rimuoverli.

# Step 5
data_air_nona <-data_air %>% na.omit()	

Box plot di base

Rappresentiamo graficamente il boxplot() di base di R con la distribuzione dell'ozono per mese.

# Store the graph
box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone))
# Add the geometric object box plot
box_plot +
    geom_boxplot()

Spiegazione del codice

  • Memorizzare il grafico per un ulteriore utilizzo
    • box_plot: Memorizza il grafico nella variabile box_plot. รˆ utile per un uso futuro o per evitare righe di codice troppo complesse.
  • Aggiungere l'oggetto geometrico di R boxplot()
    • Si passa il set di dati data_air_nona a ggplot boxplot.
    • All'interno dell'argomento aes() aggiungi l'asse x e l'asse y.
    • Il segno + significa che vuoi che R continui a leggere il codice. Rende il codice piรน leggibile rompendolo.
    • Utilizzare geom_boxplot() per creare un box plot

Produzione:

Basic Box Terreno

Cambia lato del grafico

Puoi capovolgere il lato del grafico.

box_plot +
  geom_boxplot()+
  coord_flip()

Spiegazione del codice

  • box_plot: Utilizzi il grafico che hai memorizzato. Evita di riscrivere tutti i codici ogni volta che aggiungi nuove informazioni al grafico.
  • geom_boxplot(): crea boxplot() in R
  • coord_flip(): capovolge il lato del grafico

Produzione:

Cambia lato del grafico

Cambia il colore del valore anomalo

รˆ possibile modificare il colore, la forma e la dimensione dei valori anomali.

box_plot +
    geom_boxplot(outlier.colour = "red",
        outlier.shape = 2,
        outlier.size = 3) +
    theme_classic()

Spiegazione del codice

  • outlier.color="red": controlla il colore dei valori anomali
  • outlier.shape=2: modifica la forma dell'outlier. 2 si riferisce al triangolo
  • outlier.size=3: modifica la dimensione del triangolo. La dimensione รจ proporzionale al numero.

Produzione:

Cambia colore del valore anomalo

Aggiungi una statistica riassuntiva

รˆ possibile aggiungere una statistica riassuntiva al boxplot() di R.

box_plot +
    geom_boxplot() +
    stat_summary(fun.y = mean,
        geom = "point",
        size = 3,
        color = "steelblue") +
    theme_classic()

Spiegazione del codice

  • stat_summary() consente di aggiungere un riepilogo al boxplot orizzontale R
  • L'argomento fun.y controlla le statistiche restituite. Utilizzerai la media
  • Nota: sono disponibili altre statistiche, ad esempio min e max. รˆ possibile visualizzare piรน statistiche nello stesso grafico
  • geom = โ€œpuntoโ€: traccia la media con un punto
  • size=3: dimensione del punto
  • color =โ€steelblueโ€: Colore dei punti

Produzione:

Aggiungi una statistica riassuntiva

Box Traccia con punti

Nel boxplot orizzontale successivo R, aggiungi i layer del dot plot. Ogni punto rappresenta un'osservazione.

box_plot +
    geom_boxplot() +
    geom_dotplot(binaxis = 'y',
        dotsize = 1,
        stackdir = 'center') +
    theme_classic()

Spiegazione del codice

  • geom_dotplot() consente di aggiungere punti alla larghezza del contenitore
  • binaxis='y': cambia la posizione dei punti lungo l'asse y. Per impostazione predefinita, asse x
  • dotsize=1: dimensione dei punti
  • stackdir='center': modo di impilare i punti: quattro valori:
    • โ€œsuโ€ (predefinito),
    • "giรน"
    • "centro"
    • โ€œcentrointeroโ€

Produzione:

Box Traccia con punti

Controllo Estetico del Box Terreno

Cambia il colore della scatola

Puoi cambiare i colori del gruppo.

ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
    geom_boxplot() +
    theme_classic()

Spiegazione del codice

  • I colori dei gruppi sono controllati nella mappatura aes(). Puoi usare color= Month per cambiare il colore del box and whisker plot in base ai mesi

Produzione:

Cambia il colore del Box

Box trama con piรน gruppi

รˆ anche possibile aggiungere piรน gruppi. รˆ possibile visualizzare la differenza della qualitร  dell'aria in base al giorno della misurazione.

ggplot(data_air_nona, aes(Month, Ozone)) +
    geom_boxplot(aes(fill = day_cat)) +
    theme_classic()

Spiegazione del codice

  • La mappatura aes() dell'oggetto geometrico controlla i gruppi da visualizzare (questa variabile deve essere un fattore)
  • aes(fill= day_cat) consente di creare tre caselle per ogni mese sull'asse x

Produzione:

Box Tracciare con piรน gruppi

Box Tracciare con punti tremolanti

Un altro modo per mostrare il punto รจ con punti jittered. รˆ un modo comodo per visualizzare i punti con boxplot per dati categoriali in variabile R.

Questo metodo evita la sovrapposizione dei dati discreti.

box_plot +
    geom_boxplot() +
    geom_jitter(shape = 15,
        color = "steelblue",
        position = position_jitter(width = 0.21)) +
    theme_classic()

Spiegazione del codice

  • geom_jitter() aggiunge un piccolo decadimento a ciascun punto.
  • shape=15 cambia la forma dei punti. 15 rappresenta i quadrati
  • color = โ€œsteelblueโ€: cambia il colore del punto
  • position=position_jitter(width = 0.21): modo per posizionare i punti sovrapposti. position_jitter(width = 0.21) significa che sposti i punti del 20% dall'asse x. Per impostazione predefinita, 40%.

Produzione:

Box Tracciare con punti tremolanti

Puoi vedere la differenza tra il primo grafico con il metodo jitter e il secondo con il metodo point.

box_plot +
    geom_boxplot() +
    geom_point(shape = 5,
        color = "steelblue") +
    theme_classic()

Box Tracciare con punti tremolanti

dentellato Box Terreno

Una caratteristica interessante di geom_boxplot() รจ una funzione boxplot a tacche in R. Il grafico a tacche restringe la scatola attorno alla mediana. Lo scopo principale di un grafico a tacche รจ confrontare la significativitร  della mediana tra i gruppi. Ci sono forti prove che due gruppi hanno mediane diverse quando le tacche non si sovrappongono. Una tacca viene calcolata come segue:

dentellato Box Terreno

con รจ l'interquartile e il numero di osservazioni.

box_plot +
    geom_boxplot(notch = TRUE) +
    theme_classic()

Spiegazione del codice

  • geom_boxplot(notch=TRUE): Crea un boxplot orizzontale con tacche R

Produzione:

dentellato Box Terreno

Sintesi

Possiamo riassumere i diversi tipi di boxplot orizzontale R nella tabella seguente:

Obiettivo Code
Box plot di base
ggplot(df, aes( x = x1, y =y)) + geom_boxplot()
capovolgere il lato
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip()
Box plot con tacche
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE)
Box trama con punti tremolanti
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21))

Controlla anche: - Tutorial R per principianti: impara il linguaggio di programmazione R

Riassumi questo post con: