饼图是一种圆形统计图。它将一个圆分割成若干扇形,每个扇形代表一个数据类别,扇形面积大小对应该类别在总体中所占比例。饼图直观展示各类别数据占比关系,但不适合过多类别及比较绝对数值大小。常用于市场份额分析、预算分配及调查结果展示等场景,能让人快速了解不同类别在整体中的相对重要程度。
0x01 使用pie()函数
一、参数说明
pie(x, labels = names(x),...)
1.x
:是一个包含数据值的向量,表示各个部分的大小。这是绘制饼图的基础数据,决定了每个扇形区域的大小比例。
2.labels
:是一个字符型向量,用于为每个部分添加标签。默认情况下,使用names(x)
作为标签,如果x
没有名称属性,则使用数字序列作为标签。例如,labels = c("Part 1", "Part 2", "Part 3")
。
3.col
:一个颜色向量,指定饼图中各个扇形的颜色。可以使用颜色名称(如 "red"、"blue" 等)或十六进制颜色代码。例如,col = c("#FF0000", "#0000FF", "#00FF00")
。
4.radius
:一个数值,表示饼图的半径大小。默认值为 1。较小的值会使饼图显得更小,较大的值则会使饼图更大。例如,radius = 0.8
。
5.main
:一个字符型值,用于设置饼图的标题。例如,main = "My Pie Chart"
。
6.clockwise
:一个逻辑值,表示扇形的绘制方向是顺时针还是逆时针。默认值为TRUE
,表示顺时针绘制;如果设置为FALSE
,则逆时针绘制。例如,clockwise = FALSE
。
7.density
:底纹的密度。默认值为NULL
。
8.angle
:设置底纹的斜率。
9.edges
:用于指定用多少条边的多边形来近似表示饼图的圆形轮廓。
10.border
:设置饼图扇形区域的边框颜色。
二、准备数据
r
data <- c(30, 20, 15, 25, 10)
labels <- c("A", "B", "C", "D", "E")
colors <- c("red", "blue", "green", "yellow", "purple")
三、使用pie()函数绘制饼图
r
pie(data, labels = labels)
四、美化和调整
r
pie(data, labels = labels, main = "饼图", radius = 0.8, col = colors, clockwise = TRUE)
五、计算百分比标签并添加图例
r
# 计算百分比标签
#round()函数用于对数值进行四舍五入,第一个参数是要四舍五入的数值,第二个参数是要保留的小数位数
#paste0()函数用于将多个字符串连接在一起
percentLabels <- paste0(labels, " (", round(data/sum(data)*100, 2), "%)")
# 绘制饼图
pie(data, labels = percentLabels, main = "饼图", radius = 0.8, col = colors, clockwise = TRUE)
# 添加图例
legend("topright", legend = labels, fill = colors)
0x02 使用plotrix包
如需绘制三维饼图,则需要用到plotrix
包中的pie3D()
函数。
一、安装并加载R包
r
install.packages("plotrix")
library(plotrix)
二、pie3D()用法及参数说明
pie3d(x, labels = names(x), explode = 0, radius = 1, height = 0.1,...)
1.x
:是一个包含数据值的向量,表示各个部分的大小。这是绘制三维饼图的基础数据,决定了每个扇形区域的大小比例。
2.labels
:是一个字符型向量,用于为每个部分添加标签。默认情况下,使用names(x)
作为标签,如果x
没有名称属性,则使用数字序列作为标签。例如,labels = c("Part 1", "Part 2", "Part 3")
。
3.explode
:可以是一个数值向量,指定每个扇形是否从饼图中 "炸开" 以及炸开的程度。如果某个元素的值大于 0,对应的扇形就会被炸开到一定程度。例如,explode = c(0.1, 0, 0.2)
会使第一个和第三个扇形稍微炸开一些。默认值为 0,表示不炸开。
4.radius
:三维饼图的半径大小。默认值为 1。可以根据需要调整半径大小来改变饼图的外观。例如,radius = 0.8
会使饼图稍微小一些。
5.height
:三维饼图的厚度。默认值为 0.1。可以调整厚度来改变饼图的立体感。例如,height = 0.2
会使饼图更厚一些。
6.col
:一个颜色向量,指定饼图中各个扇形的颜色。可以使用颜色名称(如 "red"、"blue" 等)或十六进制颜色代码。例如,col = c("#FF0000", "#0000FF", "#00FF00")
。
7.main
:一个字符型值,用于设置三维饼图的标题。例如,main = "3D Pie Chart Example"
。
三、使用pie3D绘制三维饼图
r
pie3D(data,labels = labels)
四、美化和调整
r
pie3D(data,labels = percentLabels,explode = 0.08,radius = 0.8,height = 0.07,col = colors)
legend("topright", legend = labels,cex = 0.6, fill = colors)