Создание сгруппированных коробчатых диаграмм в R

  1. Используйте параметр fill в функции ggplot для создания сгруппированных коробчатых диаграмм в R
  2. Используйте функцию facet_wrap для построения сгруппированных коробчатых диаграмм в R

В этой статье будет продемонстрировано несколько методов создания сгруппированных коробчатых диаграмм в R.

Используйте параметр fill в функции ggplot для создания сгруппированных коробчатых диаграмм в R

Функция ggplot вместе с geom_boxplot обычно используется для создания объектов блочной диаграммы. Первый параметр функции ggplot представляет собой набор данных, который будет использоваться, а второй параметр определяет список эстетических сопоставлений. Функция aes отображает аргументы x и y в столбцы continent и lifeExp из набора данных gapminder, отфильтрованных с помощью функций пакета dplyr в начале. Затем параметр fill отображает данные столбца year и рисует годовые диаграммы для каждого континента. Перед присвоением параметру fill данные year необходимо преобразовать в factor; в противном случае нарисованный график не влияет на группировку.

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 по группе 1

Используйте функцию facet_wrap для построения сгруппированных коробчатых диаграмм в R

Функция facet_wrap - это еще один вариант для рисования нескольких коробчатых диаграмм, сгруппированных по определенному параметру. В этом случае мы демонстрируем группировку графиков по годам. Обратите внимание, что facet_wrap может работать без указания параметра fill, но он помогает различать разные графики по цветам, выводимым с помощью следующего фрагмента кода. scale_x_discrete и scale_y_continuous также используются для изменения меток и имен осей.

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 по группе 2

facet_wrap отображает одинаковые масштабы на разных графиках. Хотя мы можем назначить свободную строку параметру scale, это приведет к автоматическому изменению масштабов.

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 по группе 3

Можно также построить годовые коробчатые диаграммы на основе нефильтрованного набора данных gapminder. На этот раз параметр fill отображает столбец continent, а функция facet_wrap снова принимает данные 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 по группе 4

Сопутствующая статья - R Plot

  • Добавить прозрачный прямоугольник на коробчатую диаграмму в R
  • Создавайте бок о бок Boxplots в R
  • Функция scale_colour_discrete в R
  • Функция scale_x_discrete в R