You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绘制双标签雷达图?解决ValueError解包过多值问题

解决雷达图多组标签的ValueError问题及实现方案

错误原因分析

ValueError: too many values to unpack (expected 2) 是因为你的example_data返回的数据结构和代码中的拆包逻辑不匹配:如果函数返回的是扁平列表(比如[labels1, data1, labels2, data2]),但你尝试用group1, group2 = example_data()拆成两个变量,就会因列表长度(4)和预期拆包数量(2)不匹配触发错误。

调整数据结构

修改example_data,让它返回包含两个元组的列表,每个元组对应一组(标签列表、数据数组),确保每组数据的结构统一:

def example_data():
    # 第一组:运动属性
    labels_sport = ['速度', '力量', '耐力', '敏捷', '精准']
    data_sport = [85, 90, 75, 80, 95]
    # 第二组:游戏角色属性
    labels_game = ['攻击力', '防御力', '续航力', '爆发力', '容错率']
    data_game = [70, 85, 90, 75, 80]
    # 返回两组(标签, 数据)的元组列表
    return [(labels_sport, data_sport), (labels_game, data_game)]

双雷达图实现代码

通过创建两个极坐标子轴,分别传入对应组的标签和数据绘制:

import matplotlib.pyplot as plt
import numpy as np

def draw_radar(ax, spoke_labels, data, plot_title):
    num_items = len(spoke_labels)
    # 计算每个标签对应的极坐标角度
    angles = np.linspace(0, 2 * np.pi, num_items, endpoint=False).tolist()
    # 闭合雷达图(首尾数据/角度重复)
    data_closed = data + data[:1]
    angles_closed = angles + angles[:1]
    labels_closed = spoke_labels + spoke_labels[:1]

    # 绘制雷达线和填充区域
    ax.plot(angles_closed, data_closed, 'o-', linewidth=2)
    ax.fill(angles_closed, data_closed, alpha=0.2)
    # 设置径向刻度范围(根据你的数据调整)
    ax.set_ylim(0, 100)
    # 设置极轴标签
    ax.set_xticks(angles_closed[:-1])
    ax.set_xticklabels(labels_closed[:-1])
    # 设置子图标题
    ax.set_title(plot_title, y=1.1)

# 获取整理后的数据
data_groups = example_data()

# 创建1行2列的极坐标子图
fig, (ax_left, ax_right) = plt.subplots(1, 2, figsize=(12, 6), subplot_kw={'projection': 'polar'})

# 分别绘制两组雷达图
draw_radar(ax_left, data_groups[0][0], data_groups[0][1], '运动能力属性')
draw_radar(ax_right, data_groups[1][0], data_groups[1][1], '游戏角色属性')

plt.tight_layout()
plt.show()

关键说明

  • 每个子轴独立设置spoke_labels,通过set_xticklabels绑定对应组的标签
  • 雷达图需要闭合,所以要把数据、角度、标签的首尾元素重复一次
  • 数据结构调整后,通过索引data_groups[0]/data_groups[1]即可获取每组的标签和数据,避免拆包错误

内容的提问来源于stack exchange,提问作者Ahmed Attia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 20:12:41