Как создать гистограммы по группам в ggplot2 (с примером)


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

 ggplot(df, aes(x=values_var, fill=group_var)) +
  geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
  scale_fill_manual(values=c(' red ', ' blue ', ' purple '))

В этом конкретном примере создается график с тремя перекрывающимися гистограммами красного, синего и фиолетового цветов.

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

Пример: создать гистограмму по группе в ggplot2

Предположим, у нас есть следующий кадр данных в R, который содержит информацию об очках, набранных баскетболистами из трех разных команд:

 #make this example reproducible
set. seeds (1)

#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each=100),
                 points=c(rnorm(100, mean=10),
                          rnorm(100, mean=15),
                          rnorm(100, mean=20)))

#view head of data frame
head(df)

  team points
1 A 9.373546
2 A 10.183643
3 A 9.164371
4 A 11.595281
5 A 10.329508
6 A 9.179532

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

 library (ggplot2)

#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
  geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
  scale_fill_manual(values=c(' red ', ' blue ', ' purple ')) 

Три гистограммы представляют распределение очков, набранных игроками каждой команды.

Легенда в правой части графика показывает, какой цвет соответствует каждой команде.

Обратите внимание, что аргумент цвета определяет цвет контура столбцов на каждой гистограмме, а аргумент альфа определяет прозрачность (от 0 до 1), которую следует использовать для столбцов.

Установив значение альфа меньше 1, мы увидим перекрывающиеся столбцы между гистограммами.

Не стесняйтесь использовать функцию labs() , чтобы изменить метки на графике и выбрать тему ggplot2 , которая соответствует вашему стилю:

 library (ggplot2)

#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
  geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
  scale_fill_manual(values=c(' red ', ' blue ', ' purple ')) +
  labs(fill=' Team ', x=' Points Scored ', y=' Count ', title=' Points Scored by Team ') +
  theme_classic() 

Гистограмма ggplot2 по группам

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

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

Как создать гистограмму относительной частоты в R
Как построить несколько коробчатых диаграмм на одном графике в R
Как построить несколько линий на графике в R

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

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