Создавайте бок о бок Boxplots в R

  1. Используйте функцию par для создания бок-о-бок боксов в R
  2. Используйте функцию grid.arrange для создания бок-о-бок боксов в R

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

Используйте функцию par для создания бок-о-бок боксов в R

Функцию par можно использовать для настройки графических параметров. Вызов функции без аргументов или no.readonly = TRUE возвращает все графические параметры. В этом случае мы используем параметр mfrow для построения бок-о-бок боксов. mfrow передается в векторе c(nr, nc), а последующие графики рисуются как массив nr -by- nc. Следующий пример кода создает две коробчатые диаграммы из набора данных InsectSprays, где столбцы count и spray нанесены соответственно. Несмотря на то, что углубленный обзор функции boxplot выходит за рамки данной статьи, для указания цвета тела коробки требуется аргумент col. Обратите внимание, что последний вызов функции par(mfrow=c(1,1)) используется для сброса макета к настройке по умолчанию.

par(mfrow=c(1,2))
boxplot(count ~ spray, data = InsectSprays, col = "pink")
boxplot(count ~ spray, data = InsectSprays, col = "yellow")
par(mfrow=c(1,1))

бок о бок участок r 1

Используйте функцию grid.arrange для создания бок-о-бок боксов в R

Как вариант, мы можем использовать функцию grid.arrange из пакета gridExtra. grid.arrange ведет себя аналогично функции par. Тем не менее, он более гибкий и интуитивно понятный с несколькими графиками, особенно с объектами ggplot. grid.arrange принимает объекты ggplot переменной длины в качестве начальных аргументов. После этого мы можем указать необязательные аргументы, а именно параметр ncol, обозначающий количество столбцов, которые необходимо создать для графиков. Следующий фрагмент кода рисует две бок-о-бок бок-о-бок.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
grid.arrange(plot1, plot2, ncol = 2)

бок о бок boxplot r 2

grid.arrange также может создавать двумерные разделенные окна, задаваемые с помощью параметров nrow и ncol. Обратите внимание, что объекты ggplot можно объединять в список и передавать в форме аргументаgrobs = list(...). В следующем примере выводятся четыре блочных диаграммы в матричном стиле два на два.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "yellow")
plot3 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "orange")
plot4 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "cyan")
grid.arrange(plot1, plot2, plot3, plot4, nrow = 2, ncol = 2)

бок о бок boxplot r 3

Еще один полезный параметр для функции grid.arrange - layout_matrix, который помещает каждый график в пользовательскую структуру, заданную комбинированными векторами. В примере определяются три различных графических объекта, построенных в асимметричной оконной структуре - два графика вверху и один внизу. Количество векторов в rbind соответствует строкам окна, а элементы в каждом объекте определяют количество частей, на которые должна быть разбита данная строка окна. Между тем, числа соответствуют графикам аргументов в том же порядке. Если все разделенные окна во второй строке должны быть заняты третьим графиком, то все элементы во втором векторе должны иметь значение - 3.

library(ggplot2)
library(gridExtra)

plot1 <- ggplot(InsectSprays, aes(x = spray, y = count)) + geom_boxplot(fill = "pink")
plot2 <- ggplot(mtcars, aes(x = mpg)) + geom_histogram(fill = "yellow", bins = 30)
plot3 <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(fill = "orange")

grid.arrange(plot1, plot2, plot3, widths = c(2, 2, 1),
    layout_matrix = rbind(c(1, 2, 2), c(3, 3, 3)))

бок о бок участок r 4

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

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