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

如何在Plotly散点图添加对比trace线并保留原有X轴范围

Plotly添加对比Trace并保留原X轴范围的解决方法

核心原因有两个:一是Plotly默认新增Trace时会自动重新计算轴范围适配所有数据,导致原有X轴范围被修改;二是对比的历史数据如果X维度和当前X轴范围不匹配,会直接落在可视区域外无法显示。

针对两种不同情况分别调整即可:

情况1:仅需保留原有X轴范围,不被新增Trace修改

在生成初始散点图之后、添加新Trace之前,先锁定X轴范围即可,修改后的代码如下:

fig = px.scatter(df_grouped, x=x, y=y, template=layout, height=200, width=530, color_discrete_sequence=palette)

# 锁定初始生成的X轴范围,禁止后续添加Trace时自动调整
x_init_min, x_init_max = fig.layout.xaxis.range
fig.update_layout(xaxis=dict(range=[x_init_min, x_init_max], autorange=False))

# 建议给Trace加name参数,方便图例区分
fig.add_trace(go.Scatter(x=df_grouped[x], y=df_grouped[y], mode='lines', name='当前周期'))
fig.add_trace(go.Scatter(x=df_grouped[x], y=df_grouped_last[y], mode='lines', name='过去30天对比'))

情况2:对比的历史数据X值本身不在原有X轴范围内

你参考的DataStudio对比图是把上一周期的数值映射到了当前周期的X轴刻度上,需要先做数据对齐:

  1. 保证两个周期的统计粒度一致,比如都是按天统计的30条数据
  2. 对比线直接复用当前周期的X序列作为横坐标,纵坐标使用历史周期的对应统计值,即可保证两条线在同一X轴下对齐显示。如果两个数据集长度不一致,可以先通过reindex、插值等方式做长度对齐再绘图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:09:03