Як сортувати стовпчики на гістограмі ggplot2
За замовчуванням 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.