一、雷达图简介与适用场景
1.1 什么是雷达图
雷达图(Radar Chart),又称蜘蛛网图(Spider Chart)或星状图(Star Plot),是一种以从同一点开始的轴上表示的三个或更多个定量变量的二维图表形式。它由多个等角度分布的轴组成,每个轴代表一个变量,数据点通过折线连接形成多边形。
1.2 雷达图的优势特点
- 多维度对比:可同时展示5-8个维度的数据对比。
- 直观性强:通过形状面积和顶点位置快速识别数据特征。
- 异常检测:明显凸起或凹陷可直观反映指标异常。
- 整体评估:适合展示综合能力或性能的平衡性。
1.3 典型应用场景
- 员工能力评估(技术能力、沟通能力等多维度)
- 产品特性对比(不同产品的性能参数比较)
- 游戏角色属性分析(力量、敏捷、智力等属性)
- 企业竞争力评估(财务、客户、运营等多维度)
二、Matplotlib基础与雷达图绘制原理
2.1 Matplotlib简介
Matplotlib是Python最著名的2D绘图库,提供类似MATLAB的绘图框架,支持多种图形输出格式和交互式环境。
2.2 极坐标系原理
雷达图本质上是绘制在极坐标系(Polar Coordinates)上的,因此,理解极坐标系是绘制雷达图的关键。
三、Matplotlib绘制雷达图实例
以下是一个使用Matplotlib绘制雷达图的实例代码:
import numpy as np
import matplotlib.pyplot as plt
# 标签
labels = np.array(['艺术A', '调研I', '实际R', '常规C', '企业E', '社会S'])
# 数据个数
data_length = 6
# 数据
data = np.array([1, 4, 3, 6, 4, 8])
# 角度
angles = np.linspace(0, 2 * np.pi, data_length, endpoint=False)
data = np.concatenate((data, [data[0]])) # 闭合
angles = np.concatenate((angles, [angles[0]])) # 闭合
fig, ax = plt.subplots()
ax.set_polar(True)
ax.plot(angles, data, 'bo-', linewidth=2)
ax.fill(angles, data, color='b', alpha=0.25)
# 填充标签
ax.set_xticks(angles[:-1])
ax.set_xticklabels(labels)
plt.show()
这段代码首先定义了雷达图的标签和数据,然后计算了角度并闭合了图形。接着,使用plot
函数绘制了数据点,并使用fill
函数填充了雷达图的区域。最后,设置了极坐标轴的标签并显示了图形。
四、总结
Matplotlib雷达图是一种强大的数据可视化工具,可以帮助我们直观地比较和评估多维度数据。通过以上实例,我们可以看到如何使用Matplotlib轻松绘制雷达图,并将其应用于各种场景中。