R语言饼图

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)
Changing Borders and 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)))
Change Colors of Pie Chart 4

更改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")
Change Slice Direction and Name of Pie Chart 5

添加图例

在这里,我们使用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)
Add Legend 6

更改扇形的密度

我们使用饼图的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 ")
3D Pie Chart 8

评论已关闭。