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:
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:
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:
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:
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:
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:
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 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:
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()
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:
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:
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