В данном руководстве описывается, как создавать круговые диаграммы с помощью R и пакета ggplot2.
Для создания круговой диаграммы используется функция coord_polar(), при этом круговая диаграмма фактически представляет собой обычную гистограмму в полярных координатах.
Простые круговые диаграммы
Создадим некоторый набор данных:
> df <- data.frame(group = c("Male", "Female", "Child"), value = c(25, 25, 50))
> head(df)
group value
1 Male 25
2 Female 25
3 Child 50
> head(df)
group value
1 Male 25
2 Female 25
3 Child 50
Используем barplot для визуализации данных:
> library(ggplot2)
> bp<- ggplot(df, aes(x="", y=value, fill=group))+geom_bar(width = 1, stat = "identity")
> bp
> bp<- ggplot(df, aes(x="", y=value, fill=group))+geom_bar(width = 1, stat = "identity")
> bp
Создаем круговую диаграмму:
> pie <- bp + coord_polar("y", start=0)
> pie
> pie
Изменение цветов диаграммы
Цвета можно менять вручную с помощью следующих функций:
- scale_fill_manual() : для использования вручную выбранных цветов
- scale_fill_brewer() : для использования цветовых палитр из пакета RColorBrewer
- scale_fill_grey() : для использования палитр в оттенках серого
> # Используем вручную заданные цвета
> pie + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
> pie + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
> # используем цветовую палитру brewer
> pie + scale_fill_brewer(palette="Dark2")
> pie + scale_fill_brewer(palette="Dark2")
> pie + scale_fill_brewer(palette="Blues")+theme_minimal()
> # используем оттенки серого
> pie + scale_fill_grey() + theme_minimal()
> pie + scale_fill_grey() + theme_minimal()
Здесь можно более подробно почитать о цветах ggplot2: ggplot2 colors
Создание круговой диаграммы из факторной переменной
Используются данные PlantGrowth:
> head(PlantGrowth)
weight group
1 4.17 ctrl
2 5.58 ctrl
3 5.18 ctrl
4 6.11 ctrl
5 4.50 ctrl
6 4.61 ctrl
weight group
1 4.17 ctrl
2 5.58 ctrl
3 5.18 ctrl
4 6.11 ctrl
5 4.50 ctrl
6 4.61 ctrl
Создаем круговую диаграмму числа наблюдений в каждой группе:
> ggplot(PlantGrowth, aes(x=factor(1), fill=group))+geom_bar(width = 1)+coord_polar("y")
Настраиваемые круговые диаграммы
Создаем шаблон темы:
> blank_theme <- theme_minimal()+
+ theme(
+ axis.title.x = element_blank(),
+ axis.title.y = element_blank(),
+ panel.border = element_blank(),
+ panel.grid=element_blank(),
+ axis.ticks = element_blank(),
+ plot.title=element_text(size=14, face="bold")
+ )
+ theme(
+ axis.title.x = element_blank(),
+ axis.title.y = element_blank(),
+ panel.border = element_blank(),
+ panel.grid=element_blank(),
+ axis.ticks = element_blank(),
+ plot.title=element_text(size=14, face="bold")
+ )
1. Применяем шаблон темы.
2. Удаляем метки делений осей.
3. Добавляем текстовые аннотации: для форматирования меток в процентах используется пакет scales.
> # Применяем шаблон темы
> library(scales)
> pie + scale_fill_grey() + blank_theme +
+ theme(axis.text.x=element_blank()) +
+ geom_text(aes(y = value/3 + c(0, cumsum(value)[-length(value)]),
+ label = percent(value/100)), size=5)
> library(scales)
> pie + scale_fill_grey() + blank_theme +
+ theme(axis.text.x=element_blank()) +
+ geom_text(aes(y = value/3 + c(0, cumsum(value)[-length(value)]),
+ label = percent(value/100)), size=5)
> # Используем палитру brewer
> pie + scale_fill_brewer("Blues") + blank_theme +
+ theme(axis.text.x=element_blank())+
+ geom_text(aes(y = value/3 + c(0, cumsum(value)[-length(value)]),
+ label = percent(value/100)), size=5)
> pie + scale_fill_brewer("Blues") + blank_theme +
+ theme(axis.text.x=element_blank())+
+ geom_text(aes(y = value/3 + c(0, cumsum(value)[-length(value)]),
+ label = percent(value/100)), size=5)
Комментариев нет:
Отправить комментарий