📜  如何在 R 中创建雷达图?(1)

📅  最后修改于: 2023-12-03 14:52:32.174000             🧑  作者: Mango

如何在 R 中创建雷达图?

R 语言常被用于数据可视化,其中之一的图表类型就是雷达图。本文将介绍如何在 R 中创建雷达图。

准备数据

我们以一份示例数据为例进行说明。假设有一位学生在数学、语文、英语、物理、化学五门课程中的得分情况如下:

student <- c("张三")
math <- c(85)
chinese <- c(70)
english <- c(90)
physics <- c(80)
chemistry <- c(75)

scores <- rbind(math, chinese, english, physics, chemistry)

colnames(scores) <- student
rownames(scores) <- c("数学", "语文", "英语", "物理", "化学")
安装和加载扩展包

在创建雷达图之前,我们需要安装和加载需要的扩展包。

install.packages("fmsb")
library(fmsb)
创建雷达图
基础雷达图
radarchart(scores)

使用 radarchart 函数可以创建基础雷达图。结果如下图所示:

基础雷达图

自定义雷达图

我们可以对 radarchart 函数中的参数进行调整,以创建自定义雷达图。

首先,我们可以设置最大值和最小值:

max <- 100
min <- 0
radarchart(scores, axistype = 1, # 设置轴线
           maxmin = c(max, min), # 设置最大值和最小值
           gridcol = "gray", # 设置网格线颜色
           pcol = "red", # 设置数据点颜色
           pfcol = "blue", # 设置数据点填充颜色
           plwd = 1, # 设置数据线宽度
           cglcol = "black", # 设置轴线颜色
           cglty = 1, # 设置轴线线形
           cglwd = 0.8, # 设置轴线宽度
           axislabcol = "black", # 设置轴线标签颜色
           axislabcol2 = "black", # 设置轴线标签颜色
           title = "张三的五门学科成绩雷达图" # 设置标题
           )

结果如下图所示:

自定义雷达图

添加多位学生的数据

假设我们现在有三位学生的数据,我们可以将他们的数据合并起来,绘制多行的雷达图。

# 准备数据
student1 <- c("张三")
math1 <- c(85)
chinese1 <- c(70)
english1 <- c(90)
physics1 <- c(80)
chemistry1 <- c(75)

student2 <- c("李四")
math2 <- c(75)
chinese2 <- c(85)
english2 <- c(80)
physics2 <- c(70)
chemistry2 <- c(65)

student3 <- c("王五")
math3 <- c(90)
chinese3 <- c(95)
english3 <- c(85)
physics3 <- c(75)
chemistry3 <- c(80)

scores1 <- rbind(math1, chinese1, english1, physics1, chemistry1)
scores2 <- rbind(math2, chinese2, english2, physics2, chemistry2)
scores3 <- rbind(math3, chinese3, english3, physics3, chemistry3)

scores_all <- rbind(scores1, scores2, scores3)
colnames(scores_all) <- c("张三", "李四", "王五")
rownames(scores_all) <- c("数学", "语文", "英语", "物理", "化学")

# 创建雷达图
radarchart(scores_all,
           axistype = 1, # 设置轴线
           maxmin = c(max, min), # 设置最大值和最小值
           gridcol = "gray", # 设置网格线颜色
           pcol = c("red", "blue", "green"), # 设置数据点颜色
           pfcol = c("red", "blue", "green"), # 设置数据点填充颜色
           plwd = 1, # 设置数据线宽度
           cglcol = "black", # 设置轴线颜色
           cglty = 1, # 设置轴线线形
           cglwd = 0.8, # 设置轴线宽度
           axislabcol = "black", # 设置轴线标签颜色
           axislabcol2 = "black", # 设置轴线标签颜色
           title = "三位学生的五门学科成绩雷达图" # 设置标题
           )

结果如下图所示:

多行雷达图

我们可以从图中看到三位学生的得分情况,以及他们之间的比较。