图表选择可视化指南:雷达图:多维度综合画像(深度版)
在多个维度上同时展示一个/多个对象的轮廓,适合方案多指标综合对比。
分类:📊 统计图 适用:方案多指标对比、能力/绩效画像、前后对比
一、这个图适合谁(适用场景)
- 方案多指标对比
- 能力/绩效画像
- 前后对比
二、图表结构要素
- 轴=各指标(需同向化)
- 多边形=对象轮廓
- 可叠加多个对象
三、可视化的底层逻辑
雷达图在多个辐射轴上画轮廓,适合"多维度综合画像"——一眼看出一个对象在哪些维度强、哪些弱,或多个对象的形状差异。但它用的通道是"角度/面积",在感知精度档中偏低:人对"多边形面积谁大"的判断远不如对"两根柱子谁长"的判断可靠。更隐蔽的风险是未归一化——不同量纲的轴直接画,数值大的维度会把多边形整个撑大,造成"这个方案全面更强"的错觉。所以雷达图的正确定位是"直观印象 + 配数值表做精确支撑",轴数控制在 3~8,且每个轴必须同向化(都"越大越好")并归一化。它是展示工具,不是比较工具。
四、视觉编码与感知推导
归一化与同向化:第 轴原始值 先线性映射到 :
且所有轴方向统一为"越大越好"(反向指标先取补)。否则多边形面积被单维拉伸,形状失真。
面积不可作精确比较:雷达多边形面积
人对面积判断误差大(精度档低),且 受轴数 影响(同轮廓 不同 不同)。故 只宜传达"整体饱满度"印象,精确排序须回到数值表。
叠加混淆:叠加 个对象用半透明填充,重叠区视觉混淆随 增。建议 ;超过时改用小型多子图(small multiples)并排,每图一个对象,避免形状叠加成"毛团"。
五、怎么画(步骤)
- 各轴指标先归一化到同量纲,否则大指标淹没小指标。
- 轴数 3~8 为宜,太多看不清。
- 多对象叠加用半透明填充区分。
- 指标方向统一(都『越大越好』)。
- 配合数值表,雷达只做直观、表做精确。
六、何时用 / 何时不用 / 常见丑图
- 何时用:多维度『综合长相』对比。
- 何时不用:要精确排序 → 用柱状+表格。
- 常见丑图:未归一化、轴过多、无数值支撑。
七、常见坑
- 指标未归一化
- 轴太多杂乱
- 只有图没有数
八、画图自检清单
- 指标已归一化同向
- 轴数适中
- 多对象可区分
- 有数值表支撑
九、配套资源与搭配
- 评价类问题怎么选方法
- 论文图表规范与排版
- 图表选择可视化指南
本指南由 MCM520 资料站自动生成(深度版),配套论文图表规范与可视化模板可在资源页下载。
十、实战案例——Python 绘制 + 图效果
雷达图在多个维度上同时展示多个对象的轮廓,最适合方案多指标综合对比。
案例场景:比较 3 个选址方案在「准确性、稳定性、可解释性、计算量、数据需求、鲁棒性」6 个维度的表现。
雷达图的面积越大,综合表现越好。方案甲在准确性上突出,方案乙在计算量上最优。
完整代码(Python + matplotlib)
import matplotlib.pyplot as plt
import numpy as np
dims = ['准确性', '稳定性', '可解释', '计算量', '数据需求', '鲁棒性']
n = len(dims)
angles = np.linspace(0, 2 * np.pi, n, endpoint=False).tolist()
angles += angles[:1]
schemes = {
'方案甲': [95, 80, 90, 60, 70, 85],
'方案乙': [78, 92, 70, 88, 85, 60],
'方案丙': [85, 85, 85, 75, 80, 80],
}
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
colors = ['#2563eb', '#dc2626', '#16a34a']
for (name, vals), c in zip(schemes.items(), colors):
vals += vals[:1]
ax.plot(angles, vals, 'o-', linewidth=2, label=name, color=c)
ax.fill(angles, vals, alpha=0.1, color=c)
ax.set_xticks(angles[:-1])
ax.set_xticklabels(dims, fontsize=11)
ax.set_ylim(0, 100)
ax.set_title('三个方案多指标雷达图', fontsize=14, fontweight='bold', pad=20)
ax.legend(loc='upper right', bbox_to_anchor=(1.3, 1.1), fontsize=11)
plt.tight_layout()
plt.show()
运行效果图
本指南由 MCM520 资料站生成,配套 Python 代码可直接运行。