R Boxplot

In diesem Artikel lernen Sie, wie Sie Whisker- und Boxplots in der R-Programmierung erstellen. Sie werden auch lernen, mehrere Boxplots in einem einzigen Plot zu zeichnen.

In R werden Boxplots (und Whiskerplots) mit der Funktion boxplot() erstellt.

Die Funktion boxplot() nimmt eine beliebige Anzahl von numerischen Vektoren auf und zeichnet für jeden Vektor einen Boxplot.

Sie können auch eine Liste (oder einen Datenrahmen) mit numerischen Vektoren als Komponenten übergeben. Verwenden wir den eingebauten Datensatz airquality, der „Tägliche Luftqualitätsmessungen in New York, Mai bis September 1973“ enthält – R-Dokumentation.

> str(airquality)'data.frame':153 obs. of 6 variables:$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...$ Month : int 5 5 5 5 5 5 5 5 5 5 ...$ Day : int 1 2 3 4 5 6 7 8 9 10 ...

Lassen Sie uns einen Boxplot für die Ozonwerte erstellen.

boxplot(airquality$Ozone)

Standard-Boxplot in der R-Programmierung

Wir können sehen, dass die Daten oberhalb des Medians stärker gestreut sind. Wir können auch zwei Ausreißer im oberen Extrembereich feststellen.

Wir können zusätzliche Parameter übergeben, um das Aussehen unserer Darstellung zu steuern. Sie können in der Hilfe ?boxplot nachlesen.

Einige der häufig verwendeten Parameter sind mainzur Angabe des Titels, xlab und ylabzur Beschriftung der Achsen, colzur Festlegung der Farbe usw.

Zusätzlich können wir mit dem Argument horizontal = TRUE horizontal plotten und mit notch = TRUE eine Kerbe in die Box einfügen.

boxplot(airquality$Ozone,main = "Mean ozone in parts per billion at Roosevelt Island",xlab = "Parts Per Billion",ylab = "Ozone",col = "orange",border = "brown",horizontal = TRUE,notch = TRUE)

Horizontaler Boxplot in R

Rückgabewert von boxplot()

Die Funktion boxplot() gibt eine Liste mit 6 Komponenten zurück, die wie folgt aussehen.

> b <- boxplot(airquality$Ozone)> b$stats 1.0 18.0 31.5 63.5 122.0attr(,"class")1 "integer" $n 116$conf 24.82518 38.17482$out 135 168$group 1 1$names "1"

Wie wir oben sehen können, wird eine Liste zurückgegeben, die stats-die Position der oberen/unteren Extremwerte der Whisker und der Box zusammen mit dem Median,

  • n-die Anzahl der Beobachtungen, mit denen der Boxplot gezeichnet wird (beachten Sie, dass NA’s nicht berücksichtigt werden)
  • conf-obere/untere Extremwerte der Kerbe hat, out-Wert der Ausreißer
  • group-Vektor der gleichen Länge wie out, dessen Elemente angeben, zu welcher Gruppe der Ausreißer gehört, und
  • names-Vektor der Namen der Gruppen.

Mehrere Boxplots

Wir können mehrere Boxplots in einem einzigen Diagramm zeichnen, indem wir eine Liste, einen Datenrahmen oder mehrere Vektoren übergeben.

Betrachten wir die Felder Ozone und Temp des Datensatzes airquality. Erzeugen wir auch eine Normalverteilung mit demselben Mittelwert und derselben Standardabweichung und stellen sie zum Vergleich nebeneinander dar.

# prepare the dataozone <- airquality$Ozonetemp <- airquality$Temp# gererate normal distribution with same mean and sdozone_norm <- rnorm(200,mean=mean(ozone, na.rm=TRUE), sd=sd(ozone, na.rm=TRUE))temp_norm <- rnorm(200,mean=mean(temp, na.rm=TRUE), sd=sd(temp, na.rm=TRUE))

Nun erstellen wir 4 Boxplots mit diesen Daten. Wir verwenden die Argumente at und names, um den Ort und die Beschriftung zu bezeichnen.

boxplot(ozone, ozone_norm, temp, temp_norm,main = "Multiple boxplots for comparision",at = c(1,2,4,5),names = c("ozone", "normal", "temp", "normal"),las = 2,col = c("orange","red"),border = "brown",horizontal = TRUE,notch = TRUE)

r-multiple-boxplot

Boxplot-Formel

Die Funktion boxplot() kann auch Formeln der Form y~x aufnehmen, wobei y ein numerischer Vektor ist, der entsprechend dem Wert von x gruppiert wird.

In unserem Datensatz airquality kann zum Beispiel Temp unser numerischer Vektor sein. Monat kann unsere Gruppierungsvariable sein, so dass wir den Boxplot für jeden Monat separat erhalten. In unserem Datensatz hat der Monat die Form einer Zahl (1=Januar, 2-Februar usw.).

boxplot(Temp~Month,data=airquality,main="Different boxplots for each month",xlab="Month Number",ylab="Degree Fahrenheit",col="orange",border="brown")

Mehrere Boxplots in einem einzigen Plot

Aus der obigen Abbildung wird deutlich, dass der Monat Nummer 7 (Juli) relativ heißer ist als der Rest.