📜  R中的嵌套饼图

📅  最后修改于: 2022-05-13 01:54:50.713000             🧑  作者: Mango

R中的嵌套饼图

在本文中,我们将讨论如何在 R 编程语言中创建嵌套饼图。

饼图是只能显示一系列数据的圆形图。饼图的切片面积表示由该切片可视化的数据部分的比率。但有时我们需要同时显示两个系列的数据以更好地分析数据。我们可以通过创建嵌套饼图来做到这一点,该饼图是嵌套在圆环图中的饼图。

方法一:使用 Plotly 包创建嵌套饼图

要使用 Plotly 包在 R 语言中创建嵌套饼图,我们将首先创建一个基本饼图和一个基本圆环图。然后结合这两个层来创建一个嵌套的饼图。

要在 R 控制台中安装和导入 plotly 包,语法如下:

install.package('plotly')
library(plotly)

创建饼图:

在 R 语言中,我们可以使用带有 plot_ly()函数的 Plotly 包来创建饼图。 plot_ly()函数将数据框作为要可视化的参数。然后我们添加 add_pie()函数来创建饼图。

句法:

plot_ly( df ) %>% add_pie( df, labels, value )

在哪里,

  • df:确定要可视化的数据框。
  • 标签:确定具有标签的变量。
  • value:确定具有要在饼图中显示的值的变量。

例子:

这是使用 plot_ly()函数制作的基本饼图。

R
# load library plotly
library(plotly)
  
# create sample data frame
sample_data <- data.frame(group= c('Group1', 'Group2', 
                                   'Group3', 'Group4'), 
                   value= c(25,30,20,25))
  
# create pie chart using plot_ly() function
plot_ly(sample_data) %>%
  add_pie(sample_data, labels = ~`group`, values = ~`value`)


R
# load library plotly
library(plotly)
  
# create sample data frame
sample_data <- data.frame(group= c('Group1', 'Group2', 
                                   'Group3'), 
                   value= c(25,30,20))
  
# create donut chart using plot_ly() function
plot_ly(sample_data) %>%
  add_pie(sample_data, labels = ~`group`, values = ~`value`,
         type = 'pie', hole = 0.5)


R
# load library plotly
library(plotly)
  
# create sample data frame
sample_data <- data.frame(group= c('Group1', 'Group2', 'Group3', 'Group4'), 
                   value1= c(25,30,20,25),value2= c(15,40,10,35))
  
# create pie chart using plot_ly() function
plot_ly(sample_data) %>%
  add_pie(labels = ~`group`, values = ~`value1`, 
          type = 'pie', hole = 0.7, sort = F,
          marker = list(line = list(width = 2))) %>%
  add_pie(sample_data, labels = ~`group`, values = ~`value2`, 
          domain = list(
            x = c(0.15, 0.85),
            y = c(0.15, 0.85)),
          sort = F)


R
# load library ggplot2
library(ggplot2)
  
# create sample data frame
sample_data <- data.frame(group= c('Group1', 'Group2',
                                   'Group1', 'Group2', 
                                   'Group1', 'Group2'), 
                          name= c('name1', 'name1',
                                  'name2', 'name2', 
                                  'name3', 'name3'),
                   value= c(25,30,35,20,40,50))
  
# create nested pie chart using ggplot
ggplot(sample_data, aes(x = factor(group), y = value, fill = factor(name))) +
          geom_col() +
         scale_x_discrete(limits = c("Group1", "Group2")) +
          coord_polar("y")


输出:

创建一个圆环图:

在此方法中,要创建一个基本的圆环图,我们将使用带有孔参数的 plot_ly()函数。

句法:

plot_ly( df ) %>% add_pie( df, labels, value, hole )

在哪里,

  • df:确定要可视化的数据框。
  • 标签:确定具有标签的变量。
  • value:确定具有要在饼图中显示的值的变量。
  • 孔:确定圆环图中孔的大小。

例子:

这是使用带有孔参数的 plot_ly()函数制作的基本圆环图。

R

# load library plotly
library(plotly)
  
# create sample data frame
sample_data <- data.frame(group= c('Group1', 'Group2', 
                                   'Group3'), 
                   value= c(25,30,20))
  
# create donut chart using plot_ly() function
plot_ly(sample_data) %>%
  add_pie(sample_data, labels = ~`group`, values = ~`value`,
         type = 'pie', hole = 0.5)

输出:

创建嵌套饼图:

要创建嵌套饼图,我们首先使用 plot_ly()函数创建一个基数。然后在 add_pie()函数的帮助下添加一个圆环图图层。然后将其转换为嵌套饼图,我们添加了一个饼图的新层,并使用域参数将其调整为圆环图的中心。

句法:

plot_ly( df ) %>% add_pie( df, labels, value, hole ) %>% add_pie( df, labels, value, domain )
  • 在哪里,
  • df:确定要可视化的数据框。
  • 标签:确定具有标签的变量。
  • value:确定具有要在饼图中显示的值的变量。
  • 孔:确定圆环图中孔的大小。
  • 域:确定告诉饼图位置和大小的向量。

例子:

这是使用 plot_ly()函数制作的基本嵌套饼图。

R

# load library plotly
library(plotly)
  
# create sample data frame
sample_data <- data.frame(group= c('Group1', 'Group2', 'Group3', 'Group4'), 
                   value1= c(25,30,20,25),value2= c(15,40,10,35))
  
# create pie chart using plot_ly() function
plot_ly(sample_data) %>%
  add_pie(labels = ~`group`, values = ~`value1`, 
          type = 'pie', hole = 0.7, sort = F,
          marker = list(line = list(width = 2))) %>%
  add_pie(sample_data, labels = ~`group`, values = ~`value2`, 
          domain = list(
            x = c(0.15, 0.85),
            y = c(0.15, 0.85)),
          sort = F)

输出:

方法2:使用ggplot2包创建嵌套饼图

要使用 ggplot2 包在 R 语言中创建嵌套饼图,我们首先创建一个矩形图,然后使用 coord_polar()函数将其转换为嵌套饼图/甜甜圈图。 coord_polar()函数将笛卡尔坐标系转换为ggplot2中的极坐标系。

要在 R 控制台中安装和导入 ggplot2 包,语法如下:

install.package('ggpot2')
library(ggplot2)

句法:

plot + coord_polar( theta, start, direction, clip )

在哪里,

  • theta:确定角度
  • start:确定设置偏移量
  • 方向:确定变换的方向,即 x 或 y
  • clip:决定是否应该剪切绘图

例子:

这是使用 ggplot2 包制作的嵌套饼图。

R

# load library ggplot2
library(ggplot2)
  
# create sample data frame
sample_data <- data.frame(group= c('Group1', 'Group2',
                                   'Group1', 'Group2', 
                                   'Group1', 'Group2'), 
                          name= c('name1', 'name1',
                                  'name2', 'name2', 
                                  'name3', 'name3'),
                   value= c(25,30,35,20,40,50))
  
# create nested pie chart using ggplot
ggplot(sample_data, aes(x = factor(group), y = value, fill = factor(name))) +
          geom_col() +
         scale_x_discrete(limits = c("Group1", "Group2")) +
          coord_polar("y")

输出: