Как создать круговые диаграммы в ggplot2 (с примерами)


Круговая диаграмма — это тип диаграммы в форме круга, в которой для представления пропорций целого используются фрагменты.

В этом руководстве объясняется, как создавать и редактировать круговые диаграммы в R с помощью библиотеки визуализации данных ggplot2 .

Как создать базовую круговую диаграмму

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

 library (ggplot2)

#create data frame
data <- data.frame(" category " = c('A', 'B', 'C', 'D'),
                   " amount " = c(25, 40, 27, 8))

#create pie chart
ggplot(data, aes (x="", y=amount, fill=category)) +
  geom_bar(stat=" identity ", width= 1 ) +
  coord_polar(" y ", start= 0 ) 

Круговая диаграмма ggplot2

Как изменить внешний вид круговой диаграммы

Круговая диаграмма по умолчанию в ggplot2 довольно уродлива. Самый простой способ улучшить внешний вид — использовать theme_void() , который удаляет фон, сетку и метки:

 ggplot(data, aes (x="", y=amount, fill=category)) +
  geom_bar(stat=" identity ", width= 1 ) +
  coord_polar(" y ", start= 0 ) +
  theme_void() 

Круговая диаграмма ggplot2 без меток

Мы можем еще больше улучшить внешний вид диаграммы, добавив метки внутри срезов:

 ggplot(data, aes (x="", y=amount, fill=category)) +
  geom_bar(stat=" identity ", width= 1 ) +
  coord_polar(" y ", start= 0 ) +
  geom_text( aes (label = paste0(amount, " % ")), position = position_stack(vjust= 0.5 )) +
  labs(x = NULL, y = NULL, fill = NULL) 

Круговая диаграмма в ggplot2 с настраиваемыми метками

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

 ggplot(data, aes (x="", y=amount, fill=category)) +
  geom_bar(stat=" identity ", width= 1 ) +
  coord_polar(" y ", start= 0 ) +
  geom_text( aes (label = paste0(amount, " % ")), position = position_stack(vjust= 0.5 )) +
  labs(x = NULL, y = NULL, fill = NULL) +
  theme_classic() +
  theme(axis.line = element_blank(),
          axis.text = element_blank(),
          axis.ticks = element_blank()) +
  scale_fill_manual(values=c(" #FF5733 ", " #75FF33 ", " #33DBFF ", " #BD33FF ")) 

Круговая диаграмма ggplot2, заполненная вручную до масштаба

Совет. Используйте эту шестнадцатеричную палитру цветов , чтобы найти комбинации шестнадцатеричных кодов цветов, которые хорошо смотрятся вместе.

Вы также можете настроить цвета срезов, просто выбрав одну из цветовых шкал пивовара . Например, так выглядит «блюзовая» цветовая гамма:

 ggplot(data, aes (x="", y=amount, fill=category)) +
  geom_bar(stat=" identity ", width= 1 ) +
  coord_polar(" y ", start= 0 ) +
  geom_text( aes (label = paste0(amount, " % ")), position = position_stack(vjust= 0.5 )) +
  labs(x = NULL, y = NULL) +
  theme_classic() +
  theme(axis.line = element_blank(),
          axis.text = element_blank(),
          axis.ticks = element_blank()) +
  scale_fill_brewer(palette=" Blues ") 

Брюэр в масштабе в ggplot2

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

Как создать сгруппированную диаграмму в R, используя ggplot2
Как создать тепловую карту в R с помощью ggplot2
Как создать диаграмму Ганта в R с помощью ggplot2

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

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