Разница между facet_wrap() и facet_grid() в r
Функции facet_grid() и facet_wrap() в пакете ggplot2 могут использоваться для создания сетки графиков.
Вот основное различие между этими двумя функциями:
- Функция facet_grid() создаст сетку графиков для каждой указанной вами комбинации переменных, даже если некоторые графики пусты.
- Функция facet_wrap() будет создавать графики только для комбинаций переменных, имеющих значения, что означает , что она не будет создавать пустые графики .
Следующие два примера иллюстрируют разницу между этими двумя функциями с использованием следующего фрейма данных:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'G', 'G'),
points=c(8, 14, 20, 22, 25, 29, 30, 31),
assists=c(10, 5, 5, 3, 8, 6, 9, 12))
#view data frame
df
team position points assists
1 GA 8 10
2 AG 14 5
3 FY 20 5
4 AF 22 3
5 BG 25 8
6 BG 29 6
7 BG 30 9
8 BG 31 12
Пример 1: использование функции facet_grid()
Следующий код показывает, как использовать facet_grid() для создания сетки, которая отображает диаграмму рассеяния передач и очков для каждой команды и комбинации позиций:
library (ggplot2)
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(position~team)
Обратите внимание, что диаграмма рассеяния создается для каждой комбинации команды и позиции , даже если в исходном фрейме данных не существует значений для значения команды B и значения позиции F :
Вот как работает функция facet_grid() : она создает график для каждой указанной вами комбинации переменных, даже если некоторые графики пусты.
Пример 2: использование функции facet_wrap()
Следующий код показывает, как использовать facet_wrap() для создания сетки, отображающей диаграмму рассеяния передач и очков для каждой существующей комбинации команд и позиций:
library (ggplot2)
ggplot(df, aes (assists, points)) +
geom_point() +
facet_wrap(position~team)
Обратите внимание, что диаграмма рассеяния создается только для комбинаций команд и должностей , которые существуют в исходном фрейме данных.
Это означает, что для комбинации команды B и позиции F график не создается, поскольку в исходном фрейме данных для этой конкретной комбинации не существует значения.
Вот как работает facet_wrap() : он никогда не создает пустой путь.
Примечание . Обратитесь к документации ggplot2 для получения полного руководства по функциям facet_grid() и facet_wrap() .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:
Как изменить размер шрифта в ggplot2
Как удалить легенду в ggplot2
Как повернуть метки осей в ggplot2