Jak zmienić rozmieszczenie słupków na skumulowanym wykresie słupkowym w ggplot2
Możesz użyć następującej podstawowej składni, aby zmienić położenie słupków na skumulowanym wykresie słupkowym w ggplot2:
#specify order of bars (from top to bottom) df$fill_var <- factor(df$fill_var, levels=c(' value1 ', ' value2 ', ' value3 ', ...)) #create stacked bar chart ggplot(df, aes(x=x_var, y=y_var, fill=fill_var)) + geom_bar(position=' stack ', stat=' identity ')
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Zmień rozmieszczenie słupków na skumulowanym wykresie słupkowym w ggplot2
Załóżmy, że mamy następującą ramkę danych w R, która pokazuje punkty zdobyte przez różnych koszykarzy:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
position=c('G', 'F', 'C', 'G', 'F', 'C', 'G', 'F', 'C'),
points=c(22, 12, 10, 30, 12, 17, 28, 23, 20))
#view data frame
df
team position points
1 AG 22
2 AF12
3 AC 10
4 BG 30
5 BF 12
6 BC 17
7 GC 28
8 CF 23
9 CC 20
Jeśli utworzymy skumulowany wykres słupkowy, aby zwizualizować punkty zdobyte przez graczy w każdej drużynie, ggplot2 automatycznie ułoży słupki w kolejności alfabetycznej:
library (ggplot2) #create stacked bar chart ggplot(df, aes(x=team, y=points, fill=position)) + geom_bar(position=' stack ', stat=' identity ')

Należy pamiętać, że każdy skumulowany słupek wyświetla pozycję (od góry do dołu) w kolejności alfabetycznej.
Aby zmienić położenie słupków w określony sposób, możemy przekonwertować zmienną pozycji na współczynnik i użyć argumentu poziomów w celu określenia kolejności, w jakiej słupki powinny się znajdować (od góry do dołu) na skumulowanym wykresie słupkowym:
library (ggplot2) #convert 'position' to factor and specify level order df$position <- factor(df$position, levels=c(' F ', ' G ', ' C ')) #create stacked bar chart ggplot(df, aes(x=team, y=points, fill=position)) + geom_bar(position=' stack ', stat=' identity ')

Słupki są teraz ułożone (od góry do dołu) dokładnie w takiej kolejności, jaką określiliśmy w argumencie poziomy .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w ggplot2:
Jak obracać etykiety osi w ggplot2
Jak ustawić przerwy osi w ggplot2
Jak ustawić limity osi w ggplot2
Jak zmienić etykiety legendy w ggplot2