R语言 嵌套饼图
在这篇文章中,我们将讨论如何在R编程语言中创建一个嵌套饼图。
饼图是一个圆形图,只能显示一个系列的数据。饼的切片面积代表该切片所显示的数据部分的比例。但有时我们需要同时显示两个系列的数据,以便更好地分析数据。我们可以通过创建一个嵌套饼图来做到这一点,它是一个嵌套在甜甜圈图中的饼图。
方法1:使用Plotly软件包创建嵌套饼图
要在R语言中使用Plotly包创建一个嵌套饼图,我们首先要创建一个基本的饼图和一个基本的甜甜圈图。然后将这两层结合起来,创建一个嵌套饼图。
要在R控制台安装和导入plotly包,语法如下
install.package('plotly')
library(plotly)
创建一个饼状图
在R语言中,我们可以使用Plotly包的plot_ly()函数来创建一个饼图。plot_ly()函数将一个数据框作为参数,以实现可视化。然后我们添加add_pie()函数来创建一个饼图。
语法
plot_ly( df ) %>% add_pie( df, labels, value )
其中。
- df: 确定要被可视化的数据框架。
- labels: 决定有标签的变量。
- value: 决定在饼图中显示的变量的值。
例子
这里,是一个使用plot_ly()函数制作的基本饼图。
# 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`)
输出
创建一个甜甜圈图
在这个方法中,为了创建一个基本的甜甜圈图表,我们将使用带孔参数的 plot_ly() 函数。
语法
plot_ly( df ) %>% add_pie( df, labels, value, hole )
其中。
- df: 确定要被可视化的数据框架。
- labels: 决定有标签的变量。
- value: 确定饼状图中要显示的带有数值的变量。
- hole: 决定甜甜圈图中洞的大小。
例子
这里,是一个使用plot_ly()函数制作的基本甜甜圈图,其中有洞的参数。
# 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: 确定要被可视化的数据框架。
- labels: 决定有标签的变量。
- value: 确定饼状图中要显示的带有数值的变量。
- hole: 确定甜甜圈图中洞的大小。
- domain: 确定告诉饼图的位置和大小的向量。
例子
这里,是一个用plot_ly()函数制作的基本嵌套饼图。
# 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包创建嵌套饼图
为了在R语言中使用ggplot2包创建一个嵌套饼图,我们首先创建一个矩形图,然后使用coord_polar()函数把它变成一个嵌套饼/圆环图。coord_polar()函数将ggplot2中的笛卡尔坐标系转换为极坐标系。
要在R控制台安装和导入ggplot2包,语法如下
install.package('ggpot2')
library(ggplot2)
语法
plot + coord_polar( theta, start, direction, clip )
其中。
- theta: 决定了角度
- start: 确定设置的偏移量
- direction(方向 ):决定变换的方向,即X或Y。
- clip: 决定是否要对图形进行剪裁
例子
这里,是一个使用ggplot2软件包制作的嵌套饼图。
# 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")
输出