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
相关产品推荐
相关产品推荐

