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

使用Plotly的imshow函数时如何正确设置x轴和y轴的显示范围?

问题原因

Plotly 5.x 版本的 px.imshow 默认会为 y 轴启用 autorange: 'reversed' 配置,匹配图像坐标y轴从上到下数值递增的逻辑。直接手动设置y轴range时,默认的autorange配置会优先生效,导致自定义范围被覆盖。

解决方法

只需要在更新y轴配置时额外添加 autorange=False 即可,修改后的完整代码如下:

import numpy as np
import plotly.express as px

# 测试数据
img = np.random.randn(400,400)
xmin, xmax, ymin, ymax = 100, 200, 250, 350

fig = px.imshow(
    img,
    color_continuous_scale='gray',
)

fig.update_xaxes(range=[xmin, xmax])
# 新增autorange=False参数关闭默认自动范围逻辑
fig.update_yaxes(range=[ymax, ymin], autorange=False)
fig.show()

补充方案

如果你不想单独设置轴范围,也可以直接在px.imshow中通过extent参数一次性定义坐标轴边界,写法和matplotlib的imshow参数完全兼容:

fig = px.imshow(
    img,
    color_continuous_scale='gray',
    extent=[xmin, xmax, ymin, ymax]
)
fig.show()

以上两种方案都兼容你使用的5.3.1版本Plotly。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:15:02