Как отображать проценты на гистограмме в ggplot2

Как отображать проценты на гистограмме в 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 )) 
гистограмма ggplot2 с процентами

Пример 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.