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

如何在Python雷达图中设置日期列为图例

解决Plotly雷达图图例按日期分类的问题

你当前的代码是按不同量表(GAD-7、PHQ-9等)生成雷达线,图例显示量表名称;要改成按日期分类,让每条线对应一个日期,图例展示日期,需要调整数据遍历的逻辑:

修改思路

  1. 假设你的Survey数据框包含日期列(比如命名为Date),先提取所有唯一日期
  2. 针对每个日期,提取该日期下所有量表的分数,作为雷达线的r值
  3. 每个日期对应一个Scatterpolar trace,把name设为日期,这样图例就会显示日期

完整代码示例

import plotly.graph_objects as go

# 定义雷达图的类别(各量表名称)
categories = ['GAD-7','PHQ-9','Likert-Insomnia','Likert-Depression','Likert-Anxiety']

fig = go.Figure()

# 按日期遍历,每个日期生成一条雷达线
for date in Survey['Date'].unique():
    # 筛选当前日期的行
    date_data = Survey[Survey['Date'] == date].iloc[0]
    # 提取该日期下各量表的分数,顺序和categories对应
    scores = [
        date_data['GAD7Score'],
        date_data['PHQ9Score'],
        date_data['Likert-Insomnia'],
        date_data['Likert-Depression'],
        date_data['Likert-Anxiety']
    ]
    # 添加雷达线,name设为日期(图例显示内容)
    fig.add_trace(go.Scatterpolar(
        r=scores,
        theta=categories,
        # fill='toself',  # 如果需要填充可以取消注释
        name=str(date)
    ))

# 保持原有的布局设置
fig.update_layout(
  polar=dict(
    radialaxis=dict(
      visible=True,
      range=[0, 7]
    )),
  showlegend=True
)

fig.show()

关键说明

  • 确保Survey数据框的Date列格式正确,如果是datetime类型,转成字符串显示会更友好(str(date))
  • 每个日期对应一行数据,包含所有量表的分数,这样iloc[0]才能正确提取该日期的所有分数
  • 生成的雷达图中,每条线代表一个日期的各量表分数,图例会显示对应的日期,方便对比不同时间点的分数变化

内容的提问来源于stack exchange,提问作者Doaa A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:15:37