R语言 圆形柱状图和自定义

R语言 圆形柱状图和自定义

在这篇文章中,我们将看到如何在R编程语言中创建圆形柱状图和自定义。

圆形柱状图与柱状图相似,但它使用极坐标,而不是笛卡尔坐标。圆形柱状图是指柱状图以圆形而非直线的方式呈现。本文将向你展示如何使用R和ggplot2创建这种图。它包含可重复的代码,并解释了如何使用coord_polar()方法。

定义数据

为了在barplot中使用数据集,我们需要创建数据集,所以这里我们将创建数据集。

# 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点的偏移,单位是弧度。根据方向的值,顺时针或逆时针地应用偏移。
  • **direction ** :1,顺时针;-1,逆时针。
  • clip : 绘图是否应该被剪切到绘图面板的范围内?设置为 “on”(默认)表示是,设置为 “off “表示不是。详情请见 coord_cartesian()。
# Make the plot
p <- ggplot(data, aes(x = as.factor(index), # x-axis factor label
                       
                      # y-axis numerical 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
p

输出

R语言中的圆形柱状图和自定义

例2:给数据添加标签

要向其中添加标签和数据,将使用geom_text()方法。

# 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_labelsindex - 0.5) /number_of_label    
 
# check the label alignment - right or left
data_with_labelshjust<-ifelse( angle < -90, 1, 0)
# check the label angle
data_with_labelsangle<-ifelse(angle<-90,
                               angle + 180, angle)
 
 
 
# Make the plot
# x-axis factor label
p <- ggplot(data, aes(x = as.factor(index),
                       
                      # y-axis numerical 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_labelsangle,
            inherit.aes = FALSE )
 
p

输出

R语言中的圆形柱状图和自定义

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程