Гистограмма полезна для визуализации количества различных категориальных переменных.
Иногда нам нужно создать гистограмму, которая визуализирует количества категориальных переменных, разделенных на подгруппы.
Например, мы можем захотеть визуализировать общий объем продаж попкорна и газированных напитков для трех разных спортивных стадионов. В этом руководстве представлен пошаговый пример того, как создать следующую гистограмму с несколькими переменными:

Шаг 1: Создайте данные
Во-первых, давайте создадим фрейм данных для хранения наших данных:
#create data
df <- data.frame(stadium= rep (c('A', 'B', 'C'), each =4),
food= rep (c('popcorn', 'soda'), times =6),
sales=c(4, 5, 6, 8, 9, 12, 7, 9, 9, 11, 14, 13))
#view data
df
stadium food sales
1 A popcorn 4
2 A soda 5
3 A popcorn 6
4 A soda 8
5 B popcorn 9
6 B soda 12
7 B popcorn 7
8 B soda 9
9 C popcorn 9
10 C soda 11
11 C popcorn 14
12 C soda 13
Шаг 2: Создайте гистограмму с несколькими переменными
В следующем коде показано, как создать гистограмму с несколькими переменными, используя функцию geom_bar() для создания столбцов и аргумент «dodge», чтобы указать, что столбцы в каждой группе должны «уклоняться» друг от друга и отображаться рядом.
ggplot(df, aes (fill=food, y=sales, x=stadium)) +
geom_bar(position='dodge', stat='identity')

Различные стадионы — A, B и C — отображаются по оси x, а соответствующие продажи попкорна и содовой (в тысячах) — по оси y.
Шаг 3: Измените эстетику барплота
В следующем коде показано, как добавить заголовок, изменить метки осей и настроить цвета на гистограмме:
ggplot(df, aes (fill=food, y=sales, x=stadium)) +
geom_bar(position='dodge', stat='identity') +
ggtitle('Sales by Stadium') +
xlab('Stadium') +
ylab('Sales (in thousands)') +
scale_fill_manual('Product', values=c('coral2',' steelblue'))

Дополнительные ресурсы
Как изменить заголовок легенды в ggplot2
Как изменить размер легенды в ggplot2
Полное руководство по лучшим темам ggplot2