Créer des boîtes à moustaches groupées dans R

Jinku Hu 30 janvier 2023
  1. Utilisez le paramètre fill dans la fonction ggplot pour créer des boîtes à moustaches groupées dans R
  2. Utilisez la fonction facet_wrap pour construire des boîtes à moustaches groupées dans R
Créer des boîtes à moustaches groupées dans R

Cet article présentera plusieurs méthodes sur la façon de créer des boîtes à moustaches groupées dans R.

Utilisez le paramètre fill dans la fonction ggplot pour créer des boîtes à moustaches groupées dans R

La fonction ggplot avec geom_boxplot est généralement utilisée pour construire des objets boxplot. Le premier paramètre de la fonction ggplot représente le jeu de données à utiliser, tandis que le deuxième paramètre spécifie la liste des mappages esthétiques. La fonction aes mappe les arguments x et y aux colonnes continent et lifeExp de l’ensemble de données gapminder, filtrées à l’aide des fonctions du package dplyr au début. Ensuite, le paramètre fill mappe les données de la colonne year et dessine des boîtes à moustaches annuelles pour chaque continent. Les données year doivent être converties en factor avant d’être affectées au paramètre fill ; sinon, le tracé tracé n’affecte pas le regroupement.

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 par groupe 1

Utilisez la fonction facet_wrap pour construire des boîtes à moustaches groupées dans R

La fonction facet_wrap est une autre option pour dessiner plusieurs boxplots regroupés par le paramètre spécifique. Dans ce cas, nous démontrons le regroupement annuel des parcelles. Notez que facet_wrap peut fonctionner sans spécifier le paramètre fill, mais cela permet de distinguer les différents tracés par les couleurs telles qu’elles sont générées à l’aide de l’extrait de code suivant. scale_x_discrete et scale_y_continuous sont également utilisés pour modifier les étiquettes et les noms d’axe.

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 par groupe 2

facet_wrap affiche les mêmes échelles dans différents tracés. Bien que nous puissions affecter une chaîne free au paramètre scale, cela se traduit par des échelles ajustées automatiquement.

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 par groupe 3

On pourrait également construire des boxplots annuels à partir de l’ensemble de données gapminder non filtré. Cette fois, le paramètre fill a la colonne continent mappée, et la fonction facet_wrap reprend les données year.

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 par groupe 4

Auteur: 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

Article connexe - R Plot