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

如何在Plotly中隐藏trace时防止坐标轴自动缩放?

如何阻止Plotly隐藏Trace时自动调整轴范围

要解决隐藏trace后轴自动缩放的问题,核心是关闭轴的自动范围调整功能,固定轴的显示范围,以下是两种实用实现方式:

1. 手动指定轴的固定范围

在布局配置中,将轴的autorange设为False,同时通过range参数设置固定的数值区间(通常取所有trace数据的最小/最大值),这样无论哪个trace被隐藏,轴范围都不会改变。

Python示例代码

import plotly.graph_objects as go

# 示例数据
x = [1, 2, 3, 4, 5]
trace1_y = [1, 3, 2, 4, 3]
trace2_y = [5, 7, 6, 8, 7]

# 创建图表并添加trace
fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=trace1_y, name="Trace 1"))
fig.add_trace(go.Scatter(x=x, y=trace2_y, name="Trace 2"))

# 配置轴参数,固定范围
fig.update_layout(
    xaxis=dict(
        autorange=False,
        range=[min(x), max(x)]  # 基于x数据设置固定范围
    ),
    yaxis=dict(
        autorange=False,
        range=[min(trace1_y + trace2_y), max(trace1_y + trace2_y)]  # 基于所有y数据设置固定范围
    )
)

fig.show()

2. 锁定轴交互(禁止手动缩放+固定范围)

如果不需要用户手动拖动缩放轴,可以额外设置fixedrange=True,彻底锁定轴的范围和交互,进一步确保轴不会自动调整。

Python示例代码

fig.update_layout(
    xaxis=dict(
        autorange=False,
        range=[min(x), max(x)],
        fixedrange=True  # 禁止用户手动缩放x轴
    ),
    yaxis=dict(
        autorange=False,
        range=[min(trace1_y + trace2_y), max(trace1_y + trace2_y)],
        fixedrange=True  # 禁止用户手动缩放y轴
    )
)

关键提示

  • 若后续需要动态更新图表数据,需同步更新range参数,否则轴范围会停留在初始值,无法适配新数据。
  • 多子图场景下,每个子图的轴都需要单独配置上述参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:52:05