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

Matplotlib中imshow默认y轴反转,调用invert_yaxis无效如何解决?

Matplotlib中设置imshow图像y轴原点为0的方法

Matplotlib的imshow函数默认会将y轴原点置于图像顶部(即y轴反转),而且如果先调用plt.gca().invert_yaxis()再执行imshow,设置会被imshow覆盖,导致效果不变。要让y轴原点为0(位于图像底部),有两种可行方法:

方法一:直接指定imshow的origin参数

这是最直观的方式,在调用imshow时设置origin='lower'即可:

import numpy as np
import matplotlib.pyplot as plt

dims = [100, 100]
square = np.zeros(dims)
plt.imshow(square, origin='lower')
plt.show()

origin参数的可选值说明:

  • 'upper':默认值,y轴原点在图像顶部
  • 'lower':y轴原点在图像底部
  • 'image':等价于'upper',遵循图像领域的常规坐标
  • 'axes':等价于'lower',遵循坐标轴的常规坐标

方法二:在imshow之后调用反转y轴的方法

如果需要在绘制后调整,可以在imshow执行完成后,再调用invert_yaxis():

import numpy as np
import matplotlib.pyplot as plt

dims = [100, 100]
square = np.zeros(dims)
plt.imshow(square)
plt.gca().invert_yaxis()
plt.show()

这种方式是覆盖imshow默认的轴方向设置,同样能实现y轴原点为0的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:40:55