Когда использовать 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 ")
По оси X отображаются уникальные значения в столбце команды , а по оси Y отображается сумма значений в столбце очков для каждой команды.
Например:
- Сумма очков команды А равна 19.
- Общее количество очков команды Б составляет 27.
- Сумма очков команды С равна 35.
Используя stat=»identity» в функции geom_bar() , мы можем отображать сумму значений определенной переменной в нашем фрейме данных вместо счетчиков.
Примечание . Для корректной работы stat=»identity» необходимо указать переменную x и переменную ay в аргументе aes() .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в ggplot2:
Как настроить пространство между столбцами в ggplot2
Как удалить NA из графика в ggplot2
Как изменить цвета столбцов в столбчатой диаграмме с накоплением в ggplot2