Функцию facet_wrap() можно использовать для создания многопанельных графиков в ggplot2.
Эта функция использует следующий базовый синтаксис:
library (ggplot2)
ggplot(df, aes (x_var, y_var)) +
geom_point() +
facet_wrap(vars(category_var))
В следующих примерах показано, как использовать эту функцию со встроенным набором данных mpg в R:
#view first six rows of *mpg* dataset
head(mpg)
manufacturer model displ year cyl trans drv cty hwy fl class
audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
audi a4 2.0 2008 4 auto(av) f 21 30 p compact
audi a4 2.8 1999 6 auto(l5) f 16 26 p compact
audi a4 2.8 1999 6 manual(m5) f 18 26 p compact
Пример 1: Базовая функция facet_wrap()
В следующем коде показано, как создать несколько диаграмм рассеивания в ggplot2, используя displ в качестве переменной оси x, hwy в качестве переменной оси y и class в качестве переменной группировки:
ggplot(mpg, aes (displ, hwy)) +
geom_point() +
facet_wrap(vars(class))
![](https://www.codecamp.ru/content/images/2021/06/facet1.png)
Пример 2. Использование пользовательских меток
В следующем коде показано, как использовать функцию facet_wrap() с пользовательскими метками для заголовков графиков:
#define custom labels
plot_names <- c('2seater' = "2 Seater",
'compact' = "Compact Vehicle",
'midsize' = "Midsize Vehicle",
'minivan' = "Minivan",
'pickup' = "Pickup Truck",
'subcompact' = "Subcompact Vehicle",
'suv' = "Sport Utility Vehicle")
#use facet_wrap with custom plot labels
ggplot(mpg, aes (displ, hwy)) +
geom_point() +
facet_wrap(vars(class), labeller = as_labeller (plot_names))
![facet_wrap с пользовательскими метками в R](https://www.codecamp.ru/content/images/2021/06/facet2.png)
Пример 3: Использование пользовательских масштабов
В следующем коде показано, как использовать функцию facet_wrap() с пользовательскими шкалами для каждого отдельного графика:
#use facet_wrap with custom scales
ggplot(mpg, aes (displ, hwy)) +
geom_point() +
facet_wrap(vars(class), scales='free')
![](https://www.codecamp.ru/content/images/2021/06/facet3.png)
Пример 4: Использование пользовательского заказа
В следующем коде показано, как использовать функцию facet_wrap() с пользовательским порядком для отдельных графиков:
#define order for plots
mpg <- within(mpg, class <- factor(class, levels=c('compact', '2seater', 'suv',
'subcompact', 'pickup',
'minivan', 'midsize')))
#use facet_wrap with custom order
ggplot(mpg, aes (displ, hwy)) +
geom_point() +
facet_wrap(vars(class))
![face_wrap() с пользовательским порядком в R](https://www.codecamp.ru/content/images/2021/06/facet4.png)
Обратите внимание, что графики отображаются именно в том порядке, который мы указали.
Дополнительные ресурсы
Как изменить размер шрифта в ggplot2
Как удалить легенду в ggplot2
Как повернуть метки осей в ggplot2