Як змінити порядок стовпчиків у стовпчастій діаграмі з накопиченням у ggplot2
Ви можете використовувати наступний базовий синтаксис, щоб змінити положення стовпчиків у стовпчастій діаграмі з накопиченням у 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 ')
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: змініть порядок стовпців у стовпчастій діаграмі з накопиченням у ggplot2
Припустимо, що ми маємо наступний кадр даних у R, який показує очки, набрані різними баскетболістами:
#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
Якщо ми створимо гістограму з накопиченням, щоб візуалізувати очки, набрані гравцями кожної команди, ggplot2 автоматично складе стовпчики в алфавітному порядку:
library (ggplot2) #create stacked bar chart ggplot(df, aes(x=team, y=points, fill=position)) + geom_bar(position=' stack ', stat=' identity ')
Зауважте, що кожна смужка відображає позицію (зверху вниз) в алфавітному порядку.
Щоб переставити стовпчики певним чином, ми можемо перетворити змінну позиції на фактор і використати аргумент рівнів , щоб визначити порядок, у якому мають розташовуватися стовпчики (зверху вниз) на гістограмі з накопиченням:
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 ')
Смуги тепер укладено (зверху вниз) у точному порядку, який ми вказали в аргументі рівнів .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в ggplot2:
Як обертати мітки осей у ggplot2
Як встановити розриви осей у ggplot2
Як встановити межі осей у ggplot2
Як змінити мітки легенди в ggplot2