Разница между facet_wrap() и facet_grid() в R

Разница между 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 A G 8 10
2 A G 14 5
3 A F 20 5
4 A F 22 3
5 B G 25 8
6 B G 29 6
7 B G 30 9
8 B G 31 12

Пример 1: Использование функции facet_grid()

В следующем коде показано, как использовать facet_grid() для создания сетки, которая отображает диаграмму рассеивания передач по сравнению с очками для каждой комбинации команды и позиции:

library (ggplot2)

ggplot(df, aes (assists, points)) +
 geom_point() +
 facet_grid(position~team)

Обратите внимание, что диаграмма рассеивания создается для каждой комбинации team и 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() : он никогда не создаст пустой график.

Примечание.Полное руководство по функциям facet_grid() и facet_wrap() см. в документации ggplot2.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:

Как изменить размер шрифта в ggplot2
Как удалить легенду в ggplot2
Как повернуть метки осей в ggplot2

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.