Як змінити порядок фасетів у ggplot2 (з прикладом)
Ви можете використовувати такий базовий синтаксис, щоб визначити порядок фасетів у ggplot2:
p+
facet_grid(~factor(my_variable, levels=c(' val1 ', ' val2 ', ' val3 ', ...)))
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: змінити порядок фасетів у ggplot2
Припустимо, що ми маємо наступний кадр даних у R:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
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 points assists
1 to 8 10
2 to 14 5
3 B 20 5
4 B 22 3
5 C 25 8
6 C 29 6
7 D 30 9
8 D 31 12
Наступний код показує, як використовувати facet_grid() для створення сітки, яка відображає точкову діаграму результативних передач і очок для кожної команди:
library (ggplot2)
#create multiple scatter plots using facet_grid
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(.~team)
За замовчуванням ggplot2 розміщує діаграми розсіювання в порядку на основі значень, які з’являються першими у змінній team кадру даних.
Однак ми можемо перетворити команду на факторну змінну та використати аргумент рівнів , щоб вказати порядок, у якому команди слід розміщувати на графіку:
library (ggplot2)
#create multiple scatter plots using facet_grid with specific order
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(~factor(team, levels=c(' C ', ' D ', ' A ', ' B ')))
Зауважте, що хмари точок тепер упорядковані відповідно до порядку, який ми вказали в аргументі рівнів : C, D, A, B.
Перевага використання цього підходу полягає в тому, що ми фактично не змінюємо основні дані.
Натомість ми лише змінюємо рівні у функції facet_grid() .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в ggplot2:
Як змінити розмір шрифту в ggplot2
Як видалити легенду в ggplot2
Як обертати мітки осей у ggplot2