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

Plotly Go极坐标图显示异常修复:角度标签与数据映射问题

修复方案及代码调整

问题分析

  1. 角度标签错误:原代码生成了0-24的刻度文本,且刻度点数量不匹配24小时需求;
  2. 未展示VALUE2数据:代码中仅添加了VALUE1和VALUE3的轨迹,缺失需求中的VALUE2。

修复后的完整代码

import numpy as np
import pandas as pd
import random
import plotly.graph_objects as go

# 创建模拟数据
df = pd.DataFrame({'DATE_TIME': pd.date_range('2022-11-01', '2022-11-01 23:59:00', freq='20min'),
                   'ID': [random.randrange(1, 2) for n in range(72)]})
df['HOUR'] = df['DATE_TIME'].dt.hour
df['MINUTE'] = df['DATE_TIME'].dt.minute
df['VALUE3'] = np.random.uniform(50, 80, size=72)
df['VALUE4'] = np.random.uniform(45, 75, size=72)
df['VALUE1'] = np.random.uniform(110, 180, size=72)
df['VALUE2'] = np.random.uniform(90, 130, size=72)
df = df[(df.ID == 1)]

# 计算分钟级对应的极坐标角度
df['total_minutes'] = df['DATE_TIME'].dt.hour * 60 + df['DATE_TIME'].dt.minute
minute_angles = np.linspace(0, 2 * np.pi, 24 * 60, endpoint=False)
df['theta'] = minute_angles[df['total_minutes']]

fig = go.Figure()

# 添加VALUE1轨迹
fig.add_trace(go.Scatterpolar(
    r=df['VALUE1'],
    theta=df['theta'],
    fill='toself',
    name='VALUE1',
    line=dict(color='red')
))

# 添加VALUE2轨迹(原代码缺失)
fig.add_trace(go.Scatterpolar(
    r=df['VALUE2'],
    theta=df['theta'],
    fill='toself',
    name='VALUE2',
    line=dict(color='green')
))

# 添加VALUE3轨迹(保留原示例)
fig.add_trace(go.Scatterpolar(
    r=df['VALUE3'],
    theta=df['theta'],
    fill='toself',
    name='VALUE3',
    line=dict(color='blue')
))

fig.update_layout(
    polar=dict(
        radialaxis=dict(range=[0, 180]),
        angularaxis=dict(
            tickmode='array',
            # 生成24个均匀分布的角度刻度点,对应0-23小时
            tickvals=np.linspace(0, 2 * np.pi, 24, endpoint=False),
            ticktext=list(range(24)),
            rotation=-90,
            direction='clockwise'
        )
    ),
    showlegend=True,
    legend=dict(x=1, y=1.1, font=dict(size=8))
)

fig.show()

核心修复点

  • 角度刻度修正:将tickvals调整为24个均匀角度值,ticktext改为0-23的小时标签,匹配24小时制需求;
  • 补充VALUE2轨迹:新增对应Scatterpolar组件,完整展示需求中的两个目标指标;
  • 保留分钟精度:维持原有的分钟级角度计算逻辑,确保每个数据点对应正确的时间位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:18:13