Как отображать проценты на гистограмме в ggplot2
Вы можете использовать следующий базовый синтаксис для отображения процентов по оси Y гистограммы в ggplot2:
library (ggplot2) library (scales) #create histogram with percentages ggplot(data, aes (x = factor (team))) + geom_bar( aes (y = (..count..)/ sum (..count..))) + scale_y_continuous(labels=percent)
Следующие примеры показывают, как использовать этот синтаксис на практике.
Пример 1: Базовая гистограмма с процентами
Следующий код показывает, как создать гистограмму для категориальных переменных с процентами, отображаемыми по оси Y:
library (ggplot2) library (scales) #define data frame data <- data. frame (team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C') , points = c(77, 79, 93, 85, 89, 99, 90, 80, 68, 91, 92)) #create histogram with percentages ggplot(data, aes (x = factor (team))) + geom_bar( aes (y = (..count..)/ sum (..count..))) + scale_y_continuous(labels=percent)
Пример 2: гистограмма с процентами (удалить десятичные дроби)
Вы также можете использовать аргумент точности для отображения только целых чисел в процентах по оси Y:
library (ggplot2) library (scales) #define data frame data <- data. frame (team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C') , points = c(77, 79, 93, 85, 89, 99, 90, 80, 68, 91, 92)) #create histogram with percentages ggplot(data, aes (x = factor (team))) + geom_bar( aes (y = (..count..)/ sum (..count..))) + scale_y_continuous(labels = scales :: percent_format(accuracy = 1L ))
Пример 3: Пользовательская гистограмма с процентами
В следующем коде показано, как создать гистограмму с процентами, отображаемыми по оси Y, а также настраиваемым заголовком, метками осей и цветами:
library (ggplot2) library (scales) #define data frame data <- data. frame (team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C') , points = c(77, 79, 93, 85, 89, 99, 90, 80, 68, 91, 92)) #create histogram with percentages and custom aesthetics ggplot(data, aes (x = factor (team))) + geom_bar( aes (y = (..count..)/ sum (..count..)), fill = ' lightblue ') + scale_y_continuous(labels=percent) + labs(title = ' Breakdown by Team ', x = ' Team ', y = ' Percent of Total ') + theme_minimal()
Связанный: Полное руководство по лучшим темам ggplot2
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции с гистограммами в R:
Как изменить количество ячеек в гистограмме в R
Как построить несколько гистограмм в R
Как создать гистограмму относительной частоты в R