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

如何在Plotly Graph Objects中修改时间序列图表的X轴为0-24小时

Plotly Graph Objects 固定时间序列X轴为0-24小时的实现方法

要让Plotly Graph Objects绘制的时间序列图表X轴固定显示0-24小时区间,保证导出图片的轴范围一致以制作GIF,可按以下步骤操作:

核心思路

忽略时间序列的日期部分,将X轴范围强制锁定在当天00:00到次日00:00的区间内,同时隐藏日期显示、关闭自动缩放,确保所有导出图表的X轴视觉效果完全统一。

代码示例

import plotly.graph_objects as go
import datetime

# 模拟多日期的时间序列数据(可替换为你的真实数据)
sample_times = [datetime.datetime(2024, 5, 1, h, 0) for h in range(24)] + \
               [datetime.datetime(2024, 5, 2, h, 0) for h in range(12)]
sample_values = list(range(24)) + list(range(12))

# 初始化图表
fig = go.Figure(go.Scatter(x=sample_times, y=sample_values, mode="lines+markers"))

# 设置X轴固定范围与显示格式
base_date = datetime.datetime(2024, 5, 1, 0, 0, 0)  # 任意一天的0点作为基准
fig.update_layout(
    xaxis=dict(
        range=[base_date, base_date + datetime.timedelta(days=1)],  # 00:00到次日00:00
        tickformat="%H:%M",  # 仅显示小时和分钟,隐藏日期
        fixedrange=True,  # 禁止自动缩放,锁定轴范围
        title="时间(小时)"
    ),
    yaxis=dict(title="数据值")
)

# 预览图表
fig.show()
# 导出单张图片(批量导出时循环调用此方法即可)
# fig.write_image("hourly_chart_01.png")

关键参数说明

  • range=[base_date, base_date + datetime.timedelta(days=1)]:直接指定X轴的起始和结束时间,确保区间覆盖完整的24小时
  • tickformat="%H:%M":控制X轴刻度仅显示小时和分钟,避免日期干扰视觉统一
  • fixedrange=True:关闭X轴的自动缩放功能,防止图表根据数据范围自动调整轴区间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:10:40