R语言绘制饼图

饼图是一种圆形统计图。它将一个圆分割成若干扇形,每个扇形代表一个数据类别,扇形面积大小对应该类别在总体中所占比例。饼图直观展示各类别数据占比关系,但不适合过多类别及比较绝对数值大小。常用于市场份额分析、预算分配及调查结果展示等场景,能让人快速了解不同类别在整体中的相对重要程度。

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)
相关推荐
随意0231 分钟前
Qt 事件
开发语言·qt
鸥梨菌Honevid8 分钟前
Qt自定义控件(1)——QPaintEvent
开发语言·qt
Code季风11 分钟前
深入比较 Gin 与 Beego:Go Web 框架的两大选择
开发语言·golang·go·gin·beego
专注VB编程开发20年1 小时前
javascript的类,ES6模块写法在VSCODE中智能提示
开发语言·javascript·vscode
柳鲲鹏7 小时前
WINDOWS最快布署WEB服务器:apache2
服务器·前端·windows
黄雪超9 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice9 小时前
对象的finalization机制Test
java·开发语言·jvm
思则变9 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
lijingguang9 小时前
在C#中根据URL下载文件并保存到本地,可以使用以下方法(推荐使用现代异步方式)
开发语言·c#
专注VB编程开发20年9 小时前
开机自动后台运行,在Windows服务中托管ASP.NET Core
windows·后端·asp.net