如何将 matplotlib 图的原点翻转到左上角 - 而不是默认的左下角?我正在使用 matplotlib.pylab.plot 来生成绘图(尽管如果有另一个更灵活的绘图例程,请告诉我)。
我正在寻找 matlab 命令的等效项:axis ij;
另外,我花了几个小时浏览 matplotlib 帮助和谷歌,但还没有找到答案。有关我可以在哪里查找答案的一些信息也会有所帮助。
如何将 matplotlib 图的原点翻转到左上角 - 而不是默认的左下角?我正在使用 matplotlib.pylab.plot 来生成绘图(尽管如果有另一个更灵活的绘图例程,请告诉我)。
我正在寻找 matlab 命令的等效项:axis ij;
另外,我花了几个小时浏览 matplotlib 帮助和谷歌,但还没有找到答案。有关我可以在哪里查找答案的一些信息也会有所帮助。
最简单的方法是使用:
plt.gca().invert_yaxis()
绘制图像后。Origin
仅适用于imshow
.
axis ij
只是使y轴向下而不是向上增加,对吗?如果是这样,那么matplotlib.axes.invert_yaxis()
可能就是您所需要的——但我现在无法测试。
如果这不起作用,我发现一个邮件帖子建议
setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))
可能会做你想做的事情axis ij
。
对于图像或等高线图,您可以使用关键字origin = None | 'lower' | 'upper'
,对于线图,您可以将 ylimits 设置为从高到低。
from pylab import *
A = arange(25)/25.
A = A.reshape((5,5))
figure()
imshow(A, interpolation='nearest', origin='lower')
figure()
imshow(A, interpolation='nearest')
d = arange(5)
figure()
plot(d)
ylim(5, 0)
show()
以下是实现此目的的基本方法
ax=pylab.gca()
ax.set_ylim(ax.get_ylim()[::-1])
这
plt.ylim(max(plt.ylim()), min(plt.ylim()))
比这个有优势
plt.gca().invert_yaxis()
并且如果您处于交互模式并且您重复绘制相同的图(可能有更新的数据并且在图之后有一个断点),那么y轴不会每次都保持反转。