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

如何设置Plotly图表范围选择器默认选中6个月选项?

问题:Plotly范围选择器默认选中6个月选项的实现

我编写了如下Plotly代码绘制图表:

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"),
            dict(count=6,
                 label="6m",
                 step="month",
                 stepmode="backward")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

我希望打开仪表板时,范围选择器默认选中6个月选项,且我的数据时间跨度超过6个月,请问通过range selector能否实现该需求?

回答

可以实现。你需要同时设置两个关键参数:给6个月的按钮添加active=True标记,让它默认处于选中状态;另外手动指定x轴的range,确保图表加载时直接显示最近6个月的数据,和按钮功能匹配。

修改后的完整代码如下:

import plotly.graph_objects as go
import pandas as pd

# 先获取数据中的最新日期,计算6个月前的日期
latest_date = df.Date.max()
six_months_ago = latest_date - pd.DateOffset(months=6)

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"),
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward",
                     active=True)  # 标记该按钮为默认选中状态
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date",
        range=[six_months_ago, latest_date]  # 设置默认显示的时间范围
    )
)

关键点说明:

  • active=True:会让对应的范围选择器按钮高亮,呈现选中状态
  • x轴range参数:直接限定初始显示的时间区间,确保和6个月按钮的功能一致,避免出现按钮选中但图表显示全部数据的矛盾情况
  • 日期计算:使用pd.DateOffset(months=6)可以准确计算出6个月前的日期,适配不同的月份天数情况

内容的提问来源于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:54:19