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)
相关推荐
nightunderblackcat18 分钟前
新手向:使用Python将多种图像格式统一转换为JPG
开发语言·python
我爱Jack33 分钟前
深入解析 LinkedList
java·开发语言
engchina43 分钟前
Python PDF处理库深度对比:PyMuPDF、pypdfium2、pdfplumber、pdfminer的关系与区别
开发语言·python·pdf
拓端研究室1 小时前
专题:2025供应链数智化与效率提升报告|附100+份报告PDF、原数据表汇总下载
开发语言·php
一百天成为python专家1 小时前
python库之jieba 库
开发语言·人工智能·python·深度学习·机器学习·pycharm·python3.11
Go Dgg2 小时前
【Go + Gin 实现「双 Token」管理员登录】
开发语言·golang·gin
xiaocao_10232 小时前
支持在Windows电脑上使用的日程待办清单工具都有哪些?
windows
两圆相切2 小时前
Windows API 介绍及核心函数分类表
windows
十五年专注C++开发2 小时前
hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库
开发语言·数据库·c++·redis·缓存
WJ.Polar2 小时前
Python数据容器-集合set
开发语言·python