Jak sortować słupki na wykresie słupkowym ggplot2
Domyślnie ggplot2 układa słupki na wykresie słupkowym w następującej kolejności:
- Zmienne czynnikowe są klasyfikowane według poziomów czynników.
- Zmienne znakowe są wymienione w kolejności alfabetycznej.
Często jednak możesz chcieć zamówić sztabki w innej, określonej kolejności.
W tym samouczku wyjaśniono, jak to zrobić, korzystając z następującej ramki danych:
#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
Przykład 1: Uporządkuj słupki na podstawie określonej kolejności czynników
Jeśli spróbujemy utworzyć wykres słupkowy przedstawiający częstotliwość według zespołu, słupki automatycznie pojawią się w kolejności alfabetycznej:
library (ggplot2) ggplot(df, aes(x=team)) + geom_bar ()
Poniższy kod pokazuje, jak sortować słupki w określonej kolejności:
#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 ()
Przykład 2: Uporządkuj słupki na podstawie wartości liczbowej
Słupki możemy także sortować na podstawie wartości liczbowych. Na przykład poniższy kod pokazuje, jak uporządkować słupki od najwyższej do najniższej częstotliwości za pomocą funkcji reorder() :
library (ggplot2) ggplot(df, aes(x= reorder (team, team, function (x)-length(x)))) + geom_bar ()
Możemy także posortować słupki od najmniejszej do największej częstotliwości, usuwając znak minus w wywołaniu funkcji () w funkcji reorder () :
library (ggplot2) ggplot(df, aes(x= reorder (team, team, function (x) length(x)))) + geom_bar ()
Dodatkowe zasoby
Dokumentacja funkcji geom_bar() .
Dokumentacja funkcji reorder() .
Pełna lista samouczków języka R dotyczących statystyk.