воскресенье, 13 ноября 2016 г.

Простые круговые диаграммы в ggplot2

pie2.png

В данном руководстве описывается, как создавать круговые диаграммы с помощью 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

Используем barplot для визуализации данных:

> library(ggplot2)
> bp<- ggplot(df, aes(x="", y=value, fill=group))+geom_bar(width = 1, stat = "identity")
> bp

pie1.png
Создаем круговую диаграмму:

> pie <- bp + coord_polar("y", start=0)
> pie

pie2.png

Изменение цветов диаграммы

Цвета можно менять вручную с помощью следующих функций:

  - scale_fill_manual() : для использования вручную выбранных цветов
  - scale_fill_brewer() : для использования цветовых палитр из пакета RColorBrewer
  - scale_fill_grey() : для использования палитр в оттенках серого

> # Используем вручную заданные цвета
> pie + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))

pie3.png

> # используем цветовую палитру brewer
> pie + scale_fill_brewer(palette="Dark2")

pie4.png

> pie + scale_fill_brewer(palette="Blues")+theme_minimal()

pie5.png

> # используем оттенки серого
> pie + scale_fill_grey() + theme_minimal()

pie6.png

Здесь можно более подробно почитать о цветах 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

Создаем круговую диаграмму числа наблюдений в каждой группе:

> ggplot(PlantGrowth, aes(x=factor(1), fill=group))+geom_bar(width = 1)+coord_polar("y")

pie7.png

Настраиваемые круговые диаграммы

Создаем шаблон темы:

> 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")
+ )
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)

pie8.png

> # Используем палитру 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)

pie9.png


Перевод. Оригинал здесь.

Комментариев нет:

Отправить комментарий