Gruppierte Boxplots in R . erstellen

Jinku Hu 30 Januar 2023
  1. Verwenden Sie den Parameter fill in der Funktion ggplot, um gruppierte Boxplots in R . zu erstellen
  2. Verwenden Sie die Funktion facet_wrap, um gruppierte Boxplots in R . zu konstruieren
Gruppierte Boxplots in R . erstellen

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)

ggplot Boxplot nach Gruppe 1

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

ggplot Boxplot nach Gruppe 2

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

ggplot Boxplot nach Gruppe 3

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

ggplot Boxplot nach Gruppe 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