В этой статье мы увидим, как создавать круговые гистограммы и настройку на языке программирования R.
Круговая гистограмма похожа на гистограмму, но вместо декартовых координат она использует полярные координаты. Круговая гистограмма — это диаграмма, в которой столбцы представлены в виде круга, а не линии. Эта статья покажет вам, как создавать такие графики с помощью R и ggplot2. Он содержит воспроизводимый код и объясняет, как использовать метод coord_polar().
Определите данные
Чтобы использовать набор данных в гистограмме, нам нужно создать набор данных, поэтому здесь мы его создадим.
R
# Libraries
library
(tidyverse)
# help you to prepare the data
library
(ggplot2)
# help you to prepare the plots
# prepare dataset
data =
data.frame
(
# add a parameter with a range list 1-100
index =
seq
(1,100),
# create labelled parameter
label =
paste
( data =
"Data "
,
seq
(1,100),
sep=
"= "
),
# random values in the range 1 - 100
values =
sample
(
seq
(10,100), 100, replace = T)
)
# top five values of the dataframe
head
(data)
Выход:
index label values 1 1 Data -1 28 2 2 Data -2 46 3 3 Data -3 54 4 4 Data -4 25 5 5 Data -5 43 6 6 Data -6 26
Пример 1: базовая круговая гистограмма
Методы coord_polar(), используемые для создания графика в определенных координатах.
Синтаксис: coord_polar(theta = “x”, start = 0, direction = 1, clip = “on”)
Параметры:
- theta: Переменная для сопоставления угла с (x или y)
- start :Смещение начальной точки от 12 часов в радианах. Смещение применяется по часовой стрелке или против часовой стрелки в зависимости от значения направления.
направление: 1, по часовой стрелке; −1, против часовой стрелки - clip :Должен ли рисунок быть обрезан до размеров панели графика? Значение «включено» (по умолчанию) означает «да», а значение «выключено» означает «нет». Для получения дополнительной информации см. coord_cartesian().
R
# Make the plot
p <-
ggplot
(data,
aes
(x =
as.factor
(index),
# x-axis factor label
# y-axis numberical parameter
y = values)) +
# the bar height will represent
# the actual value of the data
geom_bar
(stat =
"identity"
,
fill=
alpha
(
"green"
, 0.5)) +
# define bar color
# define size of inner circle
# and the size of the bar
ylim
(-100,120) +
# define the polar coordinate
coord_polar
(start = 0)
# plot
Выход:
Пример 2: Добавление меток к данным
Для добавления меток и данных в него будут использоваться методы geom_text().
R
# Adding labels to the plot
data_with_labels = data
# number of labels required
number_of_label <-
nrow
(data_with_labels)
# find the angle of rotation of the label
angle <- 90 - 360 * (data_with_labels$index - 0.5) /number_of_label
# check the label alignment - right or left
data_with_labels$hjust<-
ifelse
( angle < -90, 1, 0)
# check the label angle
data_with_labels$angle<-
ifelse
(angle < -90,
angle + 180, angle)
# Make the plot
# x-axis factor label
p <-
ggplot
(data,
aes
(x =
as.factor
(index),
# y-axis numberical parameter
y = values)) +
# the bar height will represent
# the actual value of the data
geom_bar
(stat =
"identity"
,
# define bar color
fill=
alpha
(
"green"
, 0.5)) +
# define size of inner circle
# and the size of the bar
ylim
(-100,120) +
# define the polar coordinate
coord_polar
(start = 0) +
# add labels
geom_text
(data = data_with_labels,
aes
(x = index, y = values+10,
# label alignment
label = label, hjust=hjust),
color =
"black"
, fontface=
"bold"
,
alpha = 0.6, size = 2.5,
angle = data_with_labels$angle,
inherit.aes =
FALSE
)
Выход: