优雅R:雷达图,代码给你!

文摘   2024-09-17 09:01   爱尔兰  

很多做经管的同学需要雷达图发论文,那么我们今天就更更新一期雷达图的R语言代码,需要自取!


1. 雷达图的定义

雷达图(Radar Chart),也称为蜘蛛网图(Spider Chart)或极区图(Polar Chart),是一种用于多维数据可视化的图表。它通过将多个变量绘制在以中心点为基准的放射状轴上,展示数据在各维度的分布情况。每个变量在图中表示为从中心出发的一条轴线,数据点沿轴线的位置表示相应变量的数值,最终这些点被连接成一个多边形。

2. 雷达图的类型

  • 单个数据组雷达图:展示一个样本在多个维度上的表现。

  • 多个数据组雷达图:用于对比多个样本在同一组维度下的表现。

  • 填充雷达图:在数据点之间填充颜色以增强视觉效果。

3. 雷达图的应用

性能评估:用于展示个人、团队或系统在多个维度下的综合表现,例如员工绩效评估或公司财务表现。 

市场研究:比较不同产品、品牌在多个属性上的优劣。 

体育分析:对比运动员在不同技能或能力上的表现。

4. R语言中雷达图的可视化

在R语言中,fmsb包提供了便捷的工具来绘制雷达图。下面是一个完整的示例教程,展示如何使用R绘制雷达图。

4.1 安装与加载所需的包

# 如果未安装fmsb包,可以通过下面的命令安装
# install.packages("fmsb")

# 加载fmsb包
library(fmsb)

4.2 数据准备

在绘制雷达图之前,我们需要准备数据。通常的数据格式是一个矩阵或数据框,包含各个维度的数值。每列代表一个变量,每行代表一个数据组。

# 创建示例数据框
# 行:数据组(例如三种产品的不同维度表现),列:维度(例如5个不同的性能指标)
data <- data.frame(
功能性 = c(7, 6, 8),
性价比 = c(5, 6, 9),
耐用性 = c(8, 7, 6),
外观设计 = c(6, 8, 5),
用户满意度 = c(9, 8, 7)
)

# 指定列名为不同的性能指标
colnames(data) <- c("功能性", "性价比", "耐用性", "外观设计", "用户满意度")

4.3 添加最大值和最小值

为了绘制雷达图,数据框的第一行和第二行通常分别为各个维度的最大值和最小值。这有助于定义雷达图的范围。

# 添加最大值和最小值作为雷达图的范围
data <- rbind(
最大值 = c(10, 10, 10, 10, 10),
最小值 = c(0, 0, 0, 0, 0),
data
)

4.4 绘制雷达图

使用radarchart函数来绘制雷达图。

# 绘制雷达图
radarchart(data,
axistype = 1, # 轴类型,1表示所有轴使用相同的刻度
pcol = c("red", "blue", "green"), # 不同数据组的边界颜色
pfcol = c(scales::alpha("red", 0.3),
scales::alpha("blue", 0.3),
scales::alpha("green", 0.3)), # 数据组区域的填充颜色
plwd = 2, # 线条宽度
cglcol = "grey", # 网格线颜色
cglty = 1, # 网格线类型
axislabcol = "grey", # 轴标签颜色
caxislabels = seq(0, 10, 2), # 轴标签范围和刻度
title = "产品表现雷达图" # 图表标题
)

4.5 结果解读

  • 轴线(维度):代表不同的性能指标(如功能性、性价比、耐用性等)。

  • 多边形:每个数据组(如产品A、产品B、产品C)形成一个多边形,通过它们的形状和面积可以直观地比较不同产品在各个维度上的表现。

5. 总结

雷达图是多维数据可视化的有力工具,适合用于比较多个对象在不同维度的表现。通过R中的fmsb包,可以轻松实现雷达图的绘制,并通过调整颜色、线条等参数进行个性化设置。


科研代码
专注R和Python的数据分析。
 最新文章