По умолчанию ggplot2 упорядочивает столбцы на гистограмме в следующем порядке:
- Факторные переменные упорядочены по уровням факторов.
- Символьные переменные упорядочены в алфавитном порядке.
Однако часто вас может заинтересовать упорядочение стержней в каком-то другом определенном порядке.
В этом руководстве объясняется, как это сделать, используя следующий фрейм данных:
#create data frame
df <- data.frame(team = c('B', 'B', 'B', 'A', 'A', 'C'),
points = c(12, 28, 19, 22, 32, 45),
rebounds = c(5, 7, 7, 12, 11, 4))
#view structure of data frame
str(df)
'data.frame': 6 obs. of 3 variables:
$ team : Factor w/ 3 levels "A","B","C": 2 2 2 1 1 3
$ points : num 12 28 19 22 32 45
$ rebounds: num 5 7 7 12 11 4
Пример 1. Упорядочивание стержней на основе определенного порядка факторов
Если мы попытаемся создать гистограмму для отображения частоты по командам, столбцы автоматически появятся в алфавитном порядке:
library (ggplot2)
ggplot(df, aes(x=team)) +
geom_bar ()

Следующий код показывает, как упорядочить бары в определенном порядке:
#specify factor level order
df$team = factor(df$team, levels = c('C', 'A', 'B'))
#create bar chart again
ggplot(df, aes(x=team)) +
geom_bar ()
Пример 2: упорядочивание столбцов на основе числового значения
Мы также можем заказать бары на основе числовых значений. Например, следующий код показывает, как упорядочить столбцы от наибольшей до наименьшей частоты с помощью функции reorder() :
library (ggplot2)
ggplot(df, aes(x= reorder (team, team, function (x)-length(x)))) +
geom_bar ()

Мы также можем упорядочить бары от наименьшей до наибольшей частоты, убрав знак минус в вызове function() внутри функции reorder() :
library (ggplot2)
ggplot(df, aes(x= reorder (team, team, function (x) length(x)))) +
geom_bar ()

Дополнительные ресурсы
Документация по функции geom_bar() .
Документация по функции reorder() .
Полный список руководств R по Statology.