Как изменить цвета столбцов в столбчатой диаграмме с накоплением в ggplot2


Вы можете использовать следующий базовый синтаксис, чтобы изменить цвет столбцов в составной гистограмме в ggplot2:

 #create stacked bar chart
ggplot(df, aes(x=x_var, y=y_var, fill=fill_var)) + 
  geom_bar(position=' stack ', stat=' identity ') +
  scale_fill_manual(values=c(' red ', ' purple ', ' pink ', ...))

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: изменить цвет столбцов в составной гистограмме в 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 ') 

Однако мы можем использовать аргумент Scale_fill_manual() , чтобы указать точные цвета, которые ggplot2 должен использовать для столбцов:

 library (ggplot2)

#create stacked bar chart with custom colors
ggplot(df, aes(x=team, y=points, fill=position)) + 
  geom_bar(position=' stack ', stat=' identity ') +
  scale_fill_manual(values=c(' red ', ' purple ', ' pink ')) 

Столбцы теперь имеют точные цвета (в порядке сверху вниз), которые мы указали в функции Scale_fill_manual() .

Также обратите внимание, что мы можем использовать шестнадцатеричные коды цветов в функции Scale_fill_manual() :

 library (ggplot2)

#create stacked bar chart with custom hex color codes
ggplot(df, aes(x=team, y=points, fill=position)) + 
  geom_bar(position=' stack ', stat=' identity ') +
  scale_fill_manual(values=c(' #2596BE ', ' #8225BE ', ' #D4C443 ')) 

Теперь столбцы имеют указанные нами шестнадцатеричные цветовые коды.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:

Как изменить порядок столбцов в составной гистограмме в ggplot2
Как создать гистограмму в ggplot2 с несколькими переменными
Как сортировать столбцы на гистограмме ggplot2

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

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