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

如何解决Plotly Go绘制多日期时间序列的混乱绘图问题

解决多组24小时时间序列叠加绘图混乱的问题

你的问题核心是把TIME列当成字符串类别处理,导致Plotly把每天重复的时间点当作独立X轴项,最终刻度拥挤、线条重叠混乱。下面是针对性解决方案:

关键修改思路

把TIME转换成连续的时间数值(比如从0点开始的分钟数),让6组数据的X轴完全对齐,之后再把X轴刻度格式化为友好的时间字符串,兼顾数据对齐和可读性。

修改后的完整代码

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

random.seed(0)

# 生成示例数据
df = pd.DataFrame({'DATE_TIME': pd.date_range('2022-11-01', '2022-11-06 23:00:00', freq='20min'),
                   'ID': [random.randrange(1, 3) for n in range(430)]})
df['VALUE1'] = [random.uniform(110, 160) for n in range(430)]
df['INSPECTION'] = df['DATE_TIME'].dt.day
df['TIME'] = df['DATE_TIME'].dt.time
df['TIME'] = df['TIME'].astype('str')

# 新增:将TIME转换为从0点开始的分钟数(连续数值)
df['TIME_MINUTES'] = pd.to_timedelta(df['TIME']).dt.total_seconds() // 60

# 筛选ID=1的数据
df_id = df[df.ID == 1]
list_inspection = sorted(df_id['INSPECTION'].unique())
pal = list(sns.color_palette(palette='viridis', n_colors=len(list_inspection)).as_hex())

fig = go.Figure()
for d, p in zip(list_inspection, pal):
    subset = df_id[df_id['INSPECTION'] == d]
    fig.add_trace(go.Scatter(
        x=subset['TIME_MINUTES'],
        y=subset['VALUE1'],
        name=f"检查{d}",
        line_color=p,
        hovertemplate='时间: %{customdata}<br>VALUE1: %{y:.2f}',
        customdata=subset['TIME']  # hover时显示原始时间字符串
    ))

# 配置X轴:将分钟数转换回时间格式显示
fig.update_xaxes(
    tickvals=np.arange(0, 24*60+1, 360),  # 每6小时一个刻度(360分钟)
    ticktext=['00:00', '06:00', '12:00', '18:00', '24:00'],
    title='时间'
)

fig.update_yaxes(title='VALUE1')
fig.update_layout(title='ID=1的6组24小时测量数据', legend_title='检查批次')
fig.show()

改动说明

  1. 数据转换:新增TIME_MINUTES列,把时间字符串转成从0点开始的分钟数,让X轴变成连续数值轴,确保6组数据的时间点完全对齐。
  2. Hover优化:用customdata绑定原始时间字符串,鼠标悬停时能看到具体时间,不影响数据对齐的同时提升可读性。
  3. X轴刻度配置:手动设置刻度间隔(每6小时一个),并把刻度值转换回时间字符串,避免刻度拥挤。
  4. 代码精简:移除无关库导入,只保留必要部分,让逻辑更清晰。

这样处理后,6组24小时的数据会在同一个连续时间轴上对齐展示,线条不会混乱,X轴刻度清晰易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 21:35:36