Когда использовать stat="identity" на графиках ggplot2


Существует два распространенных способа использования функции geom_bar() в ggplot2 для создания гистограмм:

Способ 1: используйте geom_bar()

 ggplot(df, aes(x)) +
  geom_bar()

По умолчанию geom_bar() просто подсчитывает вхождения каждого уникального значения переменной x и использует столбцы для отображения счетчиков.

Способ 2: используйте geom_bar(stat=»identity»)

 ggplot(df, aes(x, y)) +
  geom_bar(stat=" identity ")

Если вы предоставите аргумент stat=”identity” функции geom_bar() , вы заставите R вычислить сумму переменной y, сгруппированную по переменной x, и использовать столбцы для отображения сумм.

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

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 4 ),
                 points=c(3, 5, 5, 6, 5, 7, 7, 8, 9, 9, 9, 8))

#view data frame
df

   team points
1 to 3
2 to 5
3 to 5
4 to 6
5 B 5
6 B 7
7 B 7
8 B 8
9 C 9
10 C 9
11 C 9
12 C 8

Пример 1: Использование geom_bar()

Следующий код показывает, как использовать функцию geom_bar() для создания гистограммы, отображающей количество каждого уникального значения в столбце команды :

 library (ggplot2)

#create bar chart to visualize occurrence of each unique value in team column
ggplot(df, aes(team)) +
  geom_bar()

По оси X отображаются уникальные значения в столбце «Команда» , а по оси Y отображается количество повторений каждого уникального значения.

Поскольку каждое уникальное значение появлялось 4 раза, высота каждого столбца на графике равна 4.

Пример 2: Использование geom_bar(stat=»identity»)

Следующий код показывает, как использовать функцию geom_bar() с аргументом stat=»identity» для создания гистограммы, отображающей сумму значений в столбце точек , сгруппированных по командам :

 library (ggplot2)

#create bar chart to visualize sum of points, grouped by team
ggplot(df, aes(team, points)) +
  geom_bar(stat=" identity ")

geom_bar со stat="identity" в ggplot2

По оси X отображаются уникальные значения в столбце команды , а по оси Y отображается сумма значений в столбце очков для каждой команды.

Например:

  • Сумма очков команды А равна 19.
  • Общее количество очков команды Б составляет 27.
  • Сумма очков команды С равна 35.

Используя stat=»identity» в функции geom_bar() , мы можем отображать сумму значений определенной переменной в нашем фрейме данных вместо счетчиков.

Примечание . Для корректной работы stat=»identity» необходимо указать переменную x и переменную ay в аргументе aes() .

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

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

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

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

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