boxplot() in R: Wie man BoxDiagramme in RStudio [Beispiele]

boxplot() in R

boxplot() in R hilft, die Verteilung der Daten nach Quartil zu visualisieren und das Vorhandensein von Ausreißern zu erkennen. Sie können das geometrische Objekt geom_boxplot() aus der ggplot2-Bibliothek verwenden, um ein Boxplot() in R zu zeichnen.

Wir werden den Luftqualitätsdatensatz verwenden, um boxplot() in R mit ggplot einzuführen. Dieser Datensatz misst die Luftqualität von New York von Mai bis September 1973. Der Datensatz enthält 154 Beobachtungen. Wir werden die folgenden Variablen verwenden:

  • Ozon: Numerische Variable
  • Wind: Numerische Variable
  • Monat: Mai bis September. Numerische Variable

Erstellen Box Grundfläche

Bevor Sie mit der Erstellung Ihres ersten Boxplots() in R beginnen, müssen Sie die Daten wie folgt bearbeiten:

  • Schritt 1: Importieren Sie die Daten
  • Schritt 2: Löschen Sie unnötige Variablen
  • Schritt 3: Monat in Faktorebene umrechnen
  • Schritt 4: Erstellen Sie eine neue kategoriale Variable, die den Monat in drei Ebenen unterteilt: Anfang, Mitte und Ende.
  • Schritt 5: Fehlende Beobachtungen entfernen

Alle diese Schritte werden mit dplyr und dem Pipeline-Operator %>% ausgeführt.

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"))))

Eine gute Vorgehensweise besteht darin, die Struktur der Daten mit der Funktion glimpse() zu überprüfen.

glimpse(data_air)

Ausgang:

## 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...

Der Datensatz enthält NAs. Es ist ratsam, diese zu entfernen.

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

Einfaches Boxplot

Lassen Sie uns das grundlegende R-Boxplot() mit der Ozonverteilung nach Monaten zeichnen.

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

Code Erklärung

  • Speichern Sie das Diagramm zur weiteren Verwendung
    • box_plot: Sie speichern den Graphen in der Variable box_plot. Dies ist hilfreich für die weitere Verwendung oder um zu komplexe Codezeilen zu vermeiden.
  • Fügen Sie das geometrische Objekt von R boxplot() hinzu
    • Sie übergeben den Datensatz data_air_nona an ggplot boxplot.
    • Innerhalb des aes()-Arguments fügen Sie die x-Achse und die y-Achse hinzu.
    • Das +-Zeichen bedeutet, dass R den Code weiterlesen soll. Es unterbricht den Code und macht ihn dadurch lesbarer.
    • Verwenden Sie geom_boxplot(), um ein Boxplot zu erstellen

Ausgang:

Basic Box Grundfläche

Seite des Diagramms wechseln

Sie können die Seite des Diagramms umdrehen.

box_plot +
  geom_boxplot()+
  coord_flip()

Code Erklärung

  • box_plot: Sie verwenden das von Ihnen gespeicherte Diagramm. So müssen Sie nicht jedes Mal alle Codes neu schreiben, wenn Sie dem Diagramm neue Informationen hinzufügen.
  • geom_boxplot(): Erstellen Sie Boxplots() in R
  • coord_flip(): Die Seite des Diagramms umdrehen

Ausgang:

Seite des Diagramms wechseln

Farbe des Ausreißers ändern

Sie können die Farbe, Form und Größe der Ausreißer ändern.

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

Code Erklärung

  • outlier.colour=“red“: Steuern Sie die Farbe der Ausreißer
  • outlier.shape=2: Ändert die Form des Ausreißers. 2 bezieht sich auf Dreieck
  • outlier.size=3: Ändern Sie die Größe des Dreiecks. Die Größe ist proportional zur Anzahl.

Ausgang:

Farbe des Ausreißers ändern

Fügen Sie eine zusammenfassende Statistik hinzu

Sie können dem R-Boxplot() eine zusammenfassende Statistik hinzufügen.

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

Code Erklärung

  • stat_summary() ermöglicht das Hinzufügen einer Zusammenfassung zum horizontalen Boxplot R
  • Das Argument fun.y steuert die zurückgegebenen Statistiken. Sie werden „mean“ verwenden
  • Hinweis: Es sind auch andere Statistiken verfügbar, z. B. Min. und Max. Im selben Diagramm können mehrere Statistiken angezeigt werden
  • geom = „point“: Den Durchschnitt mit einem Punkt grafisch darstellen
  • size=3: Größe des Punktes
  • color =“steelblue“: Farbe der Punkte

Ausgang:

Fügen Sie eine zusammenfassende Statistik hinzu

Box Plot mit Punkten

Im nächsten horizontalen Boxplot R fügen Sie die Punktplot-Ebenen hinzu. Jeder Punkt stellt eine Beobachtung dar.

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

Code Erklärung

  • geom_dotplot() ermöglicht das Hinzufügen von Punkten zur Bin-Breite
  • binaxis='y': Ändert die Position der Punkte entlang der y-Achse. Standardmäßig x-Achse
  • dotsize=1: Größe der Punkte
  • stackdir='center': Möglichkeit, die Punkte zu stapeln: Vier Werte:
    • „oben“ (Standard),
    • "Nieder"
    • "Center"
    • „centerganz“

Ausgang:

Box Plot mit Punkten

Kontrollieren Sie die Ästhetik des Box Grundfläche

Ändern Sie die Farbe der Box

Sie können die Farben der Gruppe ändern.

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

Code Erklärung

  • Die Farben der Gruppen werden im aes()-Mapping gesteuert. Sie können color= Month verwenden, um die Farbe des Box- und Whisker-Plots entsprechend den Monaten zu ändern.

Ausgang:

Ändern Sie die Farbe des Box

Box Grundstück mit mehreren Gruppen

Es ist auch möglich, mehrere Gruppen hinzuzufügen. Sie können den Unterschied in der Luftqualität je nach Messtag visualisieren.

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

Code Erklärung

  • Die aes()-Zuordnung des geometrischen Objekts steuert die anzuzeigenden Gruppen (diese Variable muss ein Faktor sein)
  • aes(fill= day_cat) ermöglicht das Erstellen von drei Feldern für jeden Monat auf der X-Achse

Ausgang:

Box Plot mit mehreren Gruppen

Box Diagramm mit verwackelten Punkten

Eine andere Möglichkeit, den Punkt anzuzeigen, sind Punkte mit Jitter. Dies ist eine praktische Möglichkeit, Punkte mit einem Boxplot für kategoriale Daten in R-Variablen zu visualisieren.

Diese Methode vermeidet die Überlappung der diskreten Daten.

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

Code Erklärung

  • geom_jitter() fügt jedem Punkt einen kleinen Zerfall hinzu.
  • shape=15 ändert die Form der Punkte. 15 steht für die Quadrate
  • color = „steelblue“: Ändere die Farbe des Punktes
  • position=position_jitter(width = 0.21): Möglichkeit, die überlappenden Punkte zu platzieren. position_jitter(width = 0.21) bedeutet, dass Sie die Punkte um 20 Prozent von der x-Achse verschieben. Standardmäßig 40 Prozent.

Ausgang:

Box Diagramm mit verwackelten Punkten

Sie können den Unterschied zwischen dem ersten Diagramm mit der Jitter-Methode und dem zweiten mit der Punktmethode erkennen.

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

Box Diagramm mit verwackelten Punkten

Gekerbt Box Grundfläche

Ein interessantes Feature von geom_boxplot() ist eine Notch-Boxplot-Funktion in R. Das Notch-Plot verengt die Box um den Median. Der Hauptzweck eines Notch-Boxplots besteht darin, die Signifikanz des Medians zwischen Gruppen zu vergleichen. Es gibt starke Hinweise darauf, dass zwei Gruppen unterschiedliche Mediane haben, wenn sich die Notchs nicht überschneiden. Ein Notch wird wie folgt berechnet:

Gekerbt Box Grundfläche

Dabei handelt es sich um das Interquartil und die Anzahl der Beobachtungen.

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

Code Erklärung

  • geom_boxplot(notch=TRUE): Erstellt ein horizontales Boxplot mit Kerben R

Ausgang:

Gekerbt Box Grundfläche

Zusammenfassung

Wir können die verschiedenen Arten von horizontalen Boxplots R in der folgenden Tabelle zusammenfassen:

Ziel Code
Einfaches Boxplot
ggplot(df, aes( x = x1, y =y)) + geom_boxplot()
die Seite umdrehen
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip()
Gekerbtes Boxplot
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE)
Box Plot mit verwackelten Punkten
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21))

Überprüfen Sie auch: - R-Tutorial für Anfänger: Lernen Sie die Programmiersprache R