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

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

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