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

Круговые диаграммы – популярный инструмент визуализации, используемый для представления категориальных данных в круговом формате. В этой статье мы рассмотрим различные методы создания круговых диаграмм с помощью пакета ggplot в R. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять и эффективно их реализовать.

Содержание:

  1. Основная круговая диаграмма
  2. Настройка цветов
  3. Разрыв фрагментов
  4. Кольцевая диаграмма
  5. Добавление ярлыков
  6. Создание нескольких круговых диаграмм
  7. Интерактивные круговые диаграммы

Давайте углубимся в каждый метод с подробными пояснениями и примерами кода:

  1. Основная круговая диаграмма.
    Основная круговая диаграмма отображает пропорции различных категорий. Вот пример фрагмента кода:
library(ggplot2)
data <- data.frame(category = c("A", "B", "C", "D"),
                   value = c(30, 20, 15, 35))
ggplot(data, aes(x = "", y = value, fill = category)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  theme_void()
  1. Настройка цветов.
    Вы можете настроить цвета круговой диаграммы в соответствии со своими предпочтениями или брендом. Вот пример фрагмента кода:
ggplot(data, aes(x = "", y = value, fill = category)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  theme_void() +
  scale_fill_manual(values = c("#FF0000", "#00FF00", "#0000FF", "#FFFF00"))
  1. Разнесение фрагментов.
    Если вы хотите выделить определенную категорию, вы можете разбить ее фрагмент, вытянув его из центра. Вот пример фрагмента кода:
ggplot(data, aes(x = "", y = value, fill = category)) +
  geom_bar(stat = "identity", width = 1, position = "fill") +
  coord_polar(theta = "y") +
  theme_void() +
  scale_fill_manual(values = c("#FF0000", "#00FF00", "#0000FF", "#FFFF00")) +
  coord_polar(theta = "y", start = 0)
  1. Кольцевая диаграмма.
    Кольцевая диаграмма — это вариант круговой диаграммы с отверстием в центре. Вот пример фрагмента кода:
ggplot(data, aes(x = "", y = value, fill = category)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  theme_void() +
  scale_fill_manual(values = c("#FF0000", "#00FF00", "#0000FF", "#FFFF00")) +
  theme(plot.margin = margin(10, 10, 10, 10, "mm")) +
  coord_polar(theta = "y", start = 0) +
  coord_polar(theta = "y", start = 0, clip = "off")
  1. Добавление меток.
    Вы можете добавлять метки к круговой диаграмме, чтобы отображать названия категорий и соответствующие значения. Вот пример фрагмента кода:
ggplot(data, aes(x = "", y = value, fill = category)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  theme_void() +
  scale_fill_manual(values = c("#FF0000", "#00FF00", "#0000FF", "#FFFF00")) +
  geom_text(aes(label = paste0(category, ": ", value)), position = position_stack(vjust = 0.5))
  1. Создание нескольких круговых диаграмм.
    Вы можете создать несколько круговых диаграмм для сравнения различных групп данных. Вот пример фрагмента кода:
library(gridExtra)
data1 <- data.frame(category = c("A", "B", "C", "D"), value = c(30, 20, 15, 35))
data2 <- data.frame(category = c("X", "Y", "Z"), value = c(45, 25, 30))
p1 <- ggplot(data1, aes(x = "", y = value, fill = category)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  theme_void()
p2 <- ggplot(data2, aes(x = "", y = value, fill = category)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  theme_void()
grid.arrange(p1, p2, nrow = 1)
  1. Интерактивные круговые диаграммы.
    Вы можете создавать интерактивные круговые диаграммы с помощью пакета plotly, позволяя пользователям наводить курсор на фрагменты для получения дополнительной информации. Вот пример фрагмента кода:
library(plotly)
plot_ly(data, labels = ~category, values = ~value, type = "pie") %>%
  layout(title = "Interactive Pie Chart")

В этой статье мы рассмотрели различные методы создания круговых диаграмм с помощью ggplot в R. Мы рассмотрели основные круговые диаграммы, настройку цветов, разбивку срезов, кольцевые диаграммы, добавление меток, создание нескольких круговых диаграмм и даже интерактивные круговые диаграммы с помощью сюжетный пакет. С помощью этих методов и примеров кода вы сможете создавать визуально привлекательные и информативные круговые диаграммы для анализа данных.