Как создать круговые диаграммы в 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 довольно уродлива. Самый простой способ улучшить внешний вид — использовать theme_void() , который удаляет фон, сетку и метки:
ggplot(data, aes (x="", y=amount, fill=category)) + geom_bar(stat=" identity ", width= 1 ) + coord_polar(" y ", start= 0 ) + theme_void()
Мы можем еще больше улучшить внешний вид диаграммы, добавив метки внутри срезов:
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)
Мы можем еще больше настроить диаграмму, указав наши собственные шестнадцатеричные цвета для срезов с помощью аргумента 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 "))
Совет. Используйте эту шестнадцатеричную палитру цветов , чтобы найти комбинации шестнадцатеричных кодов цветов, которые хорошо смотрятся вместе.
Вы также можете настроить цвета срезов, просто выбрав одну из цветовых шкал пивовара . Например, так выглядит «блюзовая» цветовая гамма:
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 ")
Дополнительные ресурсы
Как создать сгруппированную диаграмму в R, используя ggplot2
Как создать тепловую карту в R с помощью ggplot2
Как создать диаграмму Ганта в R с помощью ggplot2