Круговые гистограммы и настройка в R

чения дополнительной информаци Изучение

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

Выход:

Читайте также:  NSE (Nmap Scripting Engine) Учебное пособие

добавления меток и данных в него будут

Оцените статью
bestprogrammer.ru
Добавить комментарий