Créer des boîtes à moustaches groupées dans R
-
Utilisez le paramètre
fill
dans la fonctionggplot
pour créer des boîtes à moustaches groupées dans R -
Utilisez la fonction
facet_wrap
pour construire 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)
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
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
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
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