Как изменить порядок фасетов в 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 размещает диаграммы рассеяния в порядке, основанном на значениях, которые появляются первыми в переменной команды фрейма данных.

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

 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 '))) 

изменить порядок фасетов в ggplot2

Обратите внимание, что облака точек теперь упорядочены в соответствии с порядком, который мы указали в аргументе уровней : C, D, A, B.

Преимущество использования этого подхода заключается в том, что мы фактически не изменяем базовые данные.

Вместо этого мы меняем уровни только в функции facet_grid() .

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *