MCM520 ← 资料站首页 图表选择可视化指南:雷达图:多维度综合画像(深度版) 打开交互阅读器 →

图表选择可视化指南:雷达图:多维度综合画像(深度版)

在多个维度上同时展示一个/多个对象的轮廓,适合方案多指标综合对比。

分类:📊 统计图 适用:方案多指标对比、能力/绩效画像、前后对比

一、这个图适合谁(适用场景)

  • 方案多指标对比
  • 能力/绩效画像
  • 前后对比

二、图表结构要素

  1. 轴=各指标(需同向化)
  2. 多边形=对象轮廓
  3. 可叠加多个对象

三、可视化的底层逻辑

雷达图在多个辐射轴上画轮廓,适合"多维度综合画像"——一眼看出一个对象在哪些维度强、哪些弱,或多个对象的形状差异。但它用的通道是"角度/面积",在感知精度档中偏低:人对"多边形面积谁大"的判断远不如对"两根柱子谁长"的判断可靠。更隐蔽的风险是未归一化——不同量纲的轴直接画,数值大的维度会把多边形整个撑大,造成"这个方案全面更强"的错觉。所以雷达图的正确定位是"直观印象 + 配数值表做精确支撑",轴数控制在 3~8,且每个轴必须同向化(都"越大越好")并归一化。它是展示工具,不是比较工具。

四、视觉编码与感知推导

归一化与同向化:第 kk 轴原始值 xkx_k 先线性映射到 [0,1][0,1]:

xk′=xk−min⁡kmax⁡k−min⁡k x'_k=\frac{x_k-\min_k}{\max_k-\min_k}

且所有轴方向统一为"越大越好"(反向指标先取补)。否则多边形面积被单维拉伸,形状失真。

面积不可作精确比较:雷达多边形面积

A=12∑k=1mrkrk+1sin⁡2πm A=\frac12\sum_{k=1}^{m} r_k r_{k+1}\sin\frac{2\pi}{m}

人对面积判断误差大(精度档低),且 AA 受轴数 mm 影响(同轮廓 mm 不同 AA 不同)。故 AA 只宜传达"整体饱满度"印象,精确排序须回到数值表。

叠加混淆:叠加 mom_o 个对象用半透明填充,重叠区视觉混淆随 mom_o 增。建议 mo≤4m_o\le4;超过时改用小型多子图(small multiples)并排,每图一个对象,避免形状叠加成"毛团"。

五、怎么画(步骤)

  1. 各轴指标先归一化到同量纲,否则大指标淹没小指标。
  2. 轴数 3~8 为宜,太多看不清。
  3. 多对象叠加用半透明填充区分。
  4. 指标方向统一(都『越大越好』)。
  5. 配合数值表,雷达只做直观、表做精确。

六、何时用 / 何时不用 / 常见丑图

  • 何时用:多维度『综合长相』对比。
  • 何时不用:要精确排序 → 用柱状+表格。
  • 常见丑图:未归一化、轴过多、无数值支撑。

七、常见坑

  • 指标未归一化
  • 轴太多杂乱
  • 只有图没有数

八、画图自检清单

  • 指标已归一化同向
  • 轴数适中
  • 多对象可区分
  • 有数值表支撑

九、配套资源与搭配

  • 评价类问题怎么选方法
  • 论文图表规范与排版
  • 图表选择可视化指南

本指南由 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()

运行效果图

图X7  三个方案多指标雷达图


本指南由 MCM520 资料站生成,配套 Python 代码可直接运行。