Gruppierte Boxplots in R . erstellen
-
Verwenden Sie den Parameter
fill
in der Funktionggplot
, um gruppierte Boxplots in R . zu erstellen -
Verwenden Sie die Funktion
facet_wrap
, um gruppierte Boxplots in R . zu konstruieren
In diesem Artikel werden mehrere Methoden zum Erstellen gruppierter Boxplots in R veranschaulicht.
Verwenden Sie den Parameter fill
in der Funktion ggplot
, um gruppierte Boxplots in R . zu erstellen
Die Funktion ggplot
zusammen mit geom_boxplot
wird im Allgemeinen verwendet, um Boxplot-Objekte zu konstruieren. Der erste Parameter der Funktion ggplot
stellt den zu verwendenden Datensatz dar, während der zweite Parameter die Liste der ästhetischen Abbildungen angibt. Die Funktion aes
bildet die Argumente x
und y
auf die Spalten continent
und lifeExp
aus dem Datensatz gapminder
ab, gefiltert mit den Paketfunktionen dplyr
am Anfang. Dann bildet der Parameter fill
die Spaltendaten year
ab und zeichnet jährliche Boxplots für jeden Kontinent. Die Jahr
-Daten sollten in Faktor
umgerechnet werden, bevor sie dem Parameter Füllen
zugewiesen werden; andernfalls hat das gezeichnete Diagramm keinen Einfluss auf die Gruppierung.
library(ggplot2)
library(gridExtra)
library(gapminder)
library(dplyr)
dat <- gapminder %>%
filter(year %in% c(1972, 1992, 2007))
p1 <- ggplot(dat, aes(x = continent, y = lifeExp, fill = year)) +
geom_boxplot() +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
p2 <- ggplot(dat, aes(x = continent, y = lifeExp, fill = factor(year))) +
geom_boxplot() +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
grid.arrange(p1, p2, nrow = 2)
Verwenden Sie die Funktion facet_wrap
, um gruppierte Boxplots in R . zu konstruieren
Die Funktion facet_wrap
ist eine weitere Option, um mehrere Boxplots gruppiert nach dem spezifischen Parameter zu zeichnen. In diesem Fall demonstrieren wir die jährliche Gruppierung der Parzellen. Beachten Sie, dass facet_wrap
ohne Angabe des Parameters fill
funktionieren kann, aber es hilft, verschiedene Plots nach Farben zu unterscheiden, wie sie mit dem folgenden Codeausschnitt ausgegeben werden. scale_x_discrete
und scale_y_continuous
werden auch verwendet, um Beschriftungen und Achsennamen zu ändern.
library(ggplot2)
library(gridExtra)
library(gapminder)
library(dplyr)
dat <- gapminder %>%
filter(year %in% c(1972, 1992, 2007))
p3 <- ggplot(dat, aes(x = continent, y = lifeExp, fill = factor(year))) +
geom_boxplot() +
facet_wrap(~year) +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
p3
facet_wrap
zeigt die gleichen Skalen in verschiedenen Plots an. Obwohl wir dem Parameter scale
einen free
String zuweisen können, führt dies zu automatisch angepassten Skalen.
library(ggplot2)
library(gridExtra)
library(gapminder)
library(dplyr)
dat <- gapminder %>%
filter(year %in% c(1972, 1992, 2007))
p4 <- ggplot(dat, aes(x = continent, y = lifeExp, fill = factor(year))) +
geom_boxplot() +
facet_wrap(~year, scale = "free") +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
p4
Aus dem ungefilterten gapminder
-Datensatz könnte man auch jährliche Boxplots konstruieren. Diesmal hat der Parameter fill
die Spalte continent
zugeordnet, und die Funktion facet_wrap
nimmt wieder year
-Daten.
library(ggplot2)
library(gridExtra)
library(gapminder)
library(dplyr)
p5 <- ggplot(gapminder, aes(x = continent, y = lifeExp, fill = continent)) +
facet_wrap(~year) +
geom_boxplot() +
scale_y_continuous(name = "Average Life Expectancy") +
scale_x_discrete(labels = abbreviate, name = "Continent")
p5
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