Erstellen Sie nebeneinander Boxplots in R

Jinku Hu 30 Januar 2023
  1. Verwenden Sie die Funktion par, um Boxplots nebeneinander in R . zu erstellen
  2. Verwenden Sie die Funktion grid.arrange, um Boxplots nebeneinander in R . zu erstellen
Erstellen Sie nebeneinander Boxplots in R

In diesem Artikel werden Methoden zum Erstellen von nebeneinander angeordneten Boxplots in R vorgestellt.

Verwenden Sie die Funktion par, um Boxplots nebeneinander in R . zu erstellen

Mit der Funktion par können grafische Parameter eingestellt werden. Der Aufruf der Funktion ohne Argumente oder no.readonly = TRUE ruft alle grafischen Parameter ab. In diesem Fall verwenden wir den Parameter mfrow, um Boxplots nebeneinander zu erstellen. mfrow wird im c(nr, nc)-Vektor übergeben, und nachfolgende Plots werden als nr-by-nc-Array gezeichnet. Der folgende Beispielcode erstellt zwei Boxplots aus dem Datensatz InsectSprays, in denen die Spalten count und spray entsprechend geplottet werden. Auch wenn eine eingehende Überprüfung der Funktion boxplot den Rahmen dieses Artikels sprengen würde, braucht es das Argument col, um die Farbe der Boxkörper anzugeben. Beachten Sie, dass der letzte Funktionsaufruf par(mfrow=c(1,1)) verwendet wird, um das Layout auf die Standardeinstellung zurückzusetzen.

par(mfrow=c(1,2))
boxplot(count ~ spray, data = InsectSprays, col = "pink")
boxplot(count ~ spray, data = InsectSprays, col = "yellow")
par(mfrow=c(1,1))

nebeneinander Boxplot r 1

Verwenden Sie die Funktion grid.arrange, um Boxplots nebeneinander in R . zu erstellen

Alternativ können wir die Funktion grid.arrange aus dem Paket gridExtra verwenden. grid.arrange verhält sich ähnlich wie die Funktion par. Dennoch ist es flexibler und intuitiver mit mehreren Plots, insbesondere mit ggplot-Objekten. grid.arrange nimmt eine variable Länge von ggplot-Objekten als Startargumente. Danach können wir optionale Argumente angeben, nämlich den Parameter ncol, der die Anzahl der Spalten angibt, die für Plots erstellt werden müssen. Das nächste Code-Snippet zeichnet zwei Boxplots nebeneinander.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
grid.arrange(plot1, plot2, ncol = 2)

nebeneinander Boxplot r 2

grid.arrange kann auch zweidimensionale geteilte Fenster erzeugen, die mit den Parametern nrow und ncol spezifiziert werden. Beachten Sie, dass ggplot-Objekte zu einer Liste zusammengefasst und in Form des grobs = list(...)-Arguments übergeben werden können. Das folgende Beispiel gibt vier Boxplots in einem Zwei-mal-Zwei-Matrix-Stil aus.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
plot3 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "orange")
plot4 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "cyan")
grid.arrange(plot1, plot2, plot3, plot4, nrow = 2, ncol = 2)

nebeneinander Boxplot r 3

Ein weiterer nützlicher Parameter für die Funktion grid.arrange ist layout_matrix, der jeden Plot in einer benutzerdefinierten Struktur mit kombinierten Vektoren positioniert. Das Beispiel definiert drei verschiedene Plotobjekte, die in einer asymmetrischen Fensterstruktur konstruiert sind – zwei Plots oben und einer unten. Die Anzahl der Vektoren in rbind entspricht den Fensterzeilen, und Elemente in jedem Objekt geben die Anzahl der Teile an, in die die gegebene Fensterzeile aufgeteilt werden soll. Inzwischen entsprechen die Zahlen den Argumentplots in der gleichen Reihenfolge. Wenn alle geteilten Fenster in der zweiten Reihe durch den dritten Plot belegt werden sollen, sollten alle Elemente im zweiten Vektor den Wert - 3 haben.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(mtcars, aes(x = mpg)) + geom_histogram(fill = "yellow", bins = 30)
plot3 <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(fill = "orange")

grid.arrange(plot1, plot2, plot3, widths = c(2, 2, 1),
    layout_matrix = rbind(c(1, 2, 2), c(3, 3, 3)))

nebeneinander Boxplot r 4

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Verwandter Artikel - R Plot