Как изменить порядок столбцов в составной гистограмме в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *