R编程语言具有几个用于创建图表的图形库。饼图以不同颜色的圆形切片的形式表示值。切片带有说明标签,并且每个切片对应的数字也显示在图表中。但是,R文档中不建议使用饼图,并且饼图的特性受到限制。建议在饼图上使用条形图或点图,因为人们能够比长度更准确地测量长度。
饼图是通过pie()函数创建的,该函数以正数作为向量输入。附加参数用于控制标签,颜色,标题等。
pie()函数的语法如下:
pie(X, Labels, Radius, Main, Col, Clockwise)
这里,
- X - 是一个向量,其中包含饼图中使用的数值。
- Labels - 用于对切片进行描述。
- Radius - 饼图的半径。
- Main - 图表的标题。
- Col - 定义调色板。
- Clockwise - 是一个逻辑值,指示绘制切片的顺时针或逆时针方向。
例子
# 为图表创建数据。
x <- c(20, 65, 15, 50)
labels <- c("India", "America", "Shri Lanka", "Nepal")
# 为图表文件命名。
png(file = "Country.jpg")
# 绘制图表。
pie(x,labels)
# 保存文件。
dev.off() 输出:

标题和颜色
饼图具有更多函数,可以通过在pie()函数中添加更多参数来使用。我们可以通过传递main参数来为饼图命名。它将饼图的标题告知pie()函数。除此之外,我们可以通过传递col参数在绘制图表时使用颜色。
让我们看一个示例,以了解这些方法如何创建带有标题(Title)和颜色(Color)的饼图。
# 为图表创建数据。
x <- c(20, 65, 15, 50)
labels <- c("India", "America", "Shri Lanka", "Nepal")
# 为图表文件命名。
png(file = "title_color.jpg")
# 绘制图表。
pie(x,labels,main="Country Pie chart",col=rainbow(length(x)))
# 保存文件。
dev.off() 输出:

百分比和图例
饼图还有两个附加属性,即切片百分比和图例。我们可以用百分比形式显示数据,也可以通过使用legend()函数将图例添加到R中的绘图中。 legend()函数具有以下语法。
legend(x,y=NULL,legend,fill,col,bg)
这里,
- x和y - 是用于定位图例的坐标。
- lengend - 是描述的文字
- fill - 是用于填充图例文本旁边的框的颜色。
- col - 定义图例文字之外的线条和点的颜色。
- bg - 是图例框的背景颜色。
# 为图表创建数据。
x <- c(20, 65, 15, 50)
labels <- c("India", "America", "Shri Lanka", "Nepal")
pie_percent<- round(100*x/sum(x), 1)
# 为图表文件命名。
png(file = "per_pie.jpg")
# 绘制图表。
pie(x, labels = pie_percent, main = "Country Pie Chart",col = rainbow(length(x)))
legend("topright", c("India", "America", "Shri Lanka", "Nepal"), cex = 0.8,
fill = rainbow(length(x)))
#保存文件。
dev.off() 输出:

3维饼图
在R中,我们还可以创建一个三维饼图。为此,R提供了一个plotrix软件包,其pie3D()函数用于创建引人注目的3D饼图。 pie3D()函数的参数与pie()函数相同。让我们看一个示例,以了解如何借助此函数创建3D饼图。
# 加载plotrix包
library(plotrix)
# 为图表创建数据。
x <- c(20, 65, 15, 50,45)
labels <- c("India", "America", "Shri Lanka", "Nepal","Bhutan")
# 为图表文件命名。
png(file = "3d_pie_chart1.jpg")
# 绘制图表。
pie3D(x,labelslabels = labels,explode = 0.1, main = "Country Pie Chart")
# 保存文件。
dev.off() 输出:

# 加载plotrix库
library(plotrix)
# 为图表创建数据。
x <- c(20, 65, 15, 50,45)
labels <- c("India", "America", "Shri Lanka", "Nepal","Bhutan")
pie_percent<- round(100*x/sum(x), 1)
# 为图表文件命名。
png(file = "three_D_pie.jpg")
# 绘制图表。
pie3D(x, labels = pie_percent, main = "Country Pie Chart",col = rainbow(length(x)))
legend("topright", c("India", "America", "Shri Lanka", "Nepal","Bhutan"), cex = 0.8,
fill = rainbow(length(x)))
#保存文件。
dev.off() 输出: