如何在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
相关产品推荐
相关产品推荐

