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
Erschaffung 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











