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)
相关推荐
chnming198711 分钟前
STL关联式容器之map
开发语言·c++
进击的六角龙13 分钟前
深入浅出:使用Python调用API实现智能天气预报
开发语言·python
檀越剑指大厂13 分钟前
【Python系列】浅析 Python 中的字典更新与应用场景
开发语言·python
湫ccc20 分钟前
Python简介以及解释器安装(保姆级教学)
开发语言·python
程序伍六七24 分钟前
day16
开发语言·c++
wkj00129 分钟前
php操作redis
开发语言·redis·php
极客代码34 分钟前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
土豆湿40 分钟前
拥抱极简主义前端开发:NoCss.js 引领无 CSS 编程潮流
开发语言·javascript·css
界面开发小八哥1 小时前
更高效的Java 23开发,IntelliJ IDEA助力全面升级
java·开发语言·ide·intellij-idea·开发工具
qystca1 小时前
洛谷 B3637 最长上升子序列 C语言 记忆化搜索->‘正序‘dp
c语言·开发语言·算法