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

如何设置Plotly Python范围选择器默认显示1个月数据

解决Plotly默认显示1个月数据的问题

要让图表默认只显示最近1个月的数据,只需在x轴配置中添加range参数,指定默认显示的日期范围即可。具体修改步骤如下:

  1. 转换日期列格式:将字符串类型的日期转为datetime类型,方便后续时间计算
  2. 计算默认日期范围:取数据集的最后一天,往前推1个月作为起始日期
  3. 配置x轴默认范围:将计算好的起始、结束日期传入xaxis的range参数

修改后的完整代码:

import plotly.graph_objects as go
import pandas as pd

# Load data
df = pd.read_csv(
    "https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv")
df.columns = [col.replace("AAPL.", "") for col in df.columns]

# 将日期列转为datetime类型
df['Date'] = pd.to_datetime(df['Date'])

# 计算默认显示的最后1个月范围
last_date = df['Date'].iloc[-1]
start_date = last_date - pd.DateOffset(months=1)

# Create figure
fig = go.Figure()

fig.add_trace(
    go.Scatter(x=list(df.Date), y=list(df.High)))

# Set title
fig.update_layout(
    title_text="Time series with range slider and selectors"
)

# Add range slider
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"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date",
        # 设置默认显示的日期范围
        range=[start_date, last_date]
    )
)

fig.show()

补充说明

  • 转换日期列是为了能通过pd.DateOffset准确计算时间差
  • range参数接受包含起始、结束日期的列表,Plotly会自动识别datetime类型并渲染对应时间范围
  • 修改后不影响原有范围选择器按钮的功能,点击按钮仍可切换不同时间范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:31:01