R语言中的饼图非常适合展示区域销售、全国客户、国家销售等数据。我将通过一个例子,向您展示如何创建饼图、设置颜色和边框、添加图例以及创建3D饼图。
R饼图语法
饼图的语法如下所示:
pie(x, labels = names(x), col = NULL, main = NULL)
R语言中此饼图的复杂语法
pie(x, labels = names(x), edges = 200, radius = 0.8, clockwise = FALSE,
init.angle = if(clockwise) 90 else 0, density = NULL, angle = 45,
col = NULL, border = NULL, lty = NULL, main = NULL, ..)
R语言中的饼图支持许多参数,以下是实际中最常用的参数:
- x:指定一个非负数值向量。它决定了每个扇形的大小。
- labels:此参数帮助我们为每个扇形传递名称。
- edges:此参数接受的数值会改变饼图的外圈。我们强烈建议将其值保持在默认值200。
- radius:这是圆的半径,其值在-1到1之间。
- clockwise:一个布尔值,指示扇形是按顺时针还是逆时针方向绘制。默认是逆时针。
- init.angle:此参数可以帮助您指定扇形的起始角度(以度为单位)。默认值为0。如果clockwise为TRUE,则init.angle变为90度。
- density:指定阴影线的密度(每英寸线条数)。默认值为NULL,表示没有阴影线。
- angle:您可以使用此参数为阴影线分配斜率。
- col:指定您想要使用的颜色向量。默认情况下,它使用一组6种Pascal颜色。
- border, lty:此参数(可能是向量)传递给多边形,用于绘制每个扇形。
- Main:您可以提供标题。
创建基本的R饼图
在此示例中,我们将展示如何使用向量创建饼图。首先,我们声明一个随机数向量和一个国家名称向量。
接下来,我们使用编程语言的pie函数来绘制图表。从下面的代码片段中,您可以观察到数值决定了扇形的大小。
values <- c(906, 264, 289, 339, 938)
countries <- c("India","Sri Lanka","Nepal","Bhutan", "China")
pie(values, labels = countries)
更改边框和线型
在此示例中,我们将展示如何使用border和lty参数更改边框颜色和线型。
# Border and lty Example
values <- c(906, 264, 289, 339, 938)
countries <- c("India","Sri Lanka","Nepal","Bhutan", "China")
pie(values, labels = countries, border = "red", lty = 2)

提示:我们使用颜色向量来分配不同的边框颜色。例如,border = c(“red”, “green”, “black”…)
在R语言中创建饼图
我们使用外部数据创建饼图。为此,我们使用read.csv函数从CSV文件导入数据。我建议您参考Read CSV文章,以了解在R Programming中导入CSV文件涉及的步骤。
从下面的代码片段中,我们使用Aggregate函数查找每个国家的总销售额。或者说,按国家分组的销售额总和。此语句返回一个列表作为输出。
因此,我们使用$从列表中提取数据。
getwd()
employee <- read.csv("Products.csv", TRUE, sep = ",")
data <- aggregate(employee$SalesAmount,
by=list(employee$EnglishCountryRegionName), FUN=sum)
print(data)
pie(data$x, data$Group.1)
更改饼图的颜色
在此示例中,我们使用col参数更改扇形颜色。
# Changing Colors Example
getwd()
employee <- read.csv("Products.csv", TRUE, sep = ",")
data <- aggregate(employee$SalesAmount,
by=list(employee$EnglishCountryRegionName), FUN=sum)
print(data)
pie(data$x, data$Group.1, col = rainbow(length(data$x)))

更改R饼图的扇形方向和名称
我们使用clockwise参数更改饼图扇形方向,并使用main参数设置标题/名称。
# Changing Slic Direction & Assigning Name
getwd()
employee <- read.csv("Products.csv", TRUE, sep = ",")
data <- aggregate(employee$SalesAmount,
by=list(employee$EnglishCountryRegionName), FUN=sum)
print(data)
pie(data$x, data$Group.1, col = rainbow(length(data$x)),
clockwise = TRUE, main = "Sales By COuntry")

添加图例
在这里,我们使用legend函数为饼图添加图例。
# Adding Legend & Custom Colors
getwd()
employee <- read.csv("Products.csv", TRUE, sep = ",")
data <- aggregate(employee$SalesAmount,
by=list(employee$EnglishCountryRegionName), FUN=sum)
print(data)
cols = c("red", "orange", "grey", "white", "black", "yellow")
pie(data$x, data$Group.1, col = cols, main = "Sales By COuntry")
legend("topright", c("Australia","Canada","France",
"Germany", "United Kingdom", "United States"),
cex = 0.8, fill = cols)

更改扇形的密度
我们使用饼图的density参数更改扇形密度。
# Changing the Density
getwd()
employee <- read.csv("Products.csv", TRUE, sep = ",")
data <- aggregate(employee$SalesAmount,
by=list(employee$EnglishCountryRegionName), FUN=sum)
print(data)
cols = c("red", "orange", "grey", "blue", "black", "yellow")
pie(data$x, data$Group.1, col = cols, density = 50,
main = "Sales By Country")
legend("topright", c("Australia","Canada","France",
"Germany", "United Kingdom", "United States"),
cex = 0.7, fill = cols)

R语言3D饼图
让我们看看如何创建3D饼图。要绘制3D饼图,我们需要一个pie3D函数,并且要使用该函数,我们必须将plotrix库(包)添加到我们的Studio中。
# 3D Example
employee <- read.csv("Products.csv", TRUE, sep = ",")
data <- aggregate(employee$SalesAmount,
by=list(employee$EnglishCountryRegionName), FUN=sum)
print(data)
pie3D(data$x,labels = data$Group.1, explode = 0.1,
main = "3D Pie Chart in R ")

评论已关闭。