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

如何在同一张图表中同时使用range breaks与scattergl?

问题:Scattergl 能否与 Range Breaks 同时使用?

可以同时使用,但需要保证rangebreaks的配置格式正确,否则会导致图表渲染异常。

你的代码移除rangebreaks时正常运行,添加后失效,大概率是rangebreaks的配置语法有误。以下是修正后的完整代码示例,演示如何正确结合Scattergl和Range Breaks:

import plotly.graph_objects as go
import pandas as pd

# 假设df是包含Date(datetime类型)和Measure列的DataFrame
fig = go.Figure()

fig.add_trace(
    go.Scattergl(x=list(df.Date), y=list(df.Measure)), row=1, col=1
)

fig.update_layout(
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label="1m",
                     step="month",
                     stepmode="backward")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date",
        # 正确配置rangebreaks:列表形式,每个元素是定义跳过规则的字典
        rangebreaks=[
            dict(bounds=["sat", "mon"]),  # 跳过周六到周一之间的区间(即跳过周末)
            dict(values=["2023-12-25", "2024-01-01"])  # 跳过特定节假日日期
        ]
    )
)

fig.show()

关键注意事项:

  • rangebreaks必须是字典组成的列表,每个字典对应一组需要跳过的区间规则
  • 针对日期类型x轴,支持的规则类型包括:
    • bounds:指定星期几的区间(如["sat", "mon"]跳过周末)
    • values:指定具体要跳过的日期列表
    • pattern:按特定模式跳过(如"hour"跳过非工作小时)
  • 确保df.Date是标准的datetime类型(比如通过pd.to_datetime()转换),否则rangebreaks无法正确识别日期区间

如果配置后仍有问题,可以先简化rangebreaks的规则(比如只保留一个简单的跳过规则),逐步排查是否是某条规则导致的冲突,或者检查数据中是否存在异常的日期值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:57:21