📅  最后修改于: 2023-12-03 14:52:32.174000             🧑  作者: Mango
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 = "三位学生的五门学科成绩雷达图" # 设置标题
)
结果如下图所示:
我们可以从图中看到三位学生的得分情况,以及他们之间的比较。