如何将matplotlib图的原点翻转到左上角 - 而不是默认的左下角?我正在使用matplotlib.pylab.plot来生成绘图(尽管如果有另一个绘图例程更灵活,请告诉我。)
我正在寻找matlab命令的等价物:axis ij;
此外,我花了几个小时冲浪matplotlib帮助和谷歌但没有得到答案。关于我可以在哪里查找答案的一些信息也会有所帮助。
答案 0 :(得分:14)
最简单的方法是使用:
plt.gca().invert_yaxis()
绘制图像后。 Origin
仅适用于imshow
。
答案 1 :(得分:12)
axis ij
只是让y轴向下而不是向上增加,对吗?如果是这样,那么matplotlib.axes.invert_yaxis()
可能就是你所需要的 - 但我现在无法测试它。
如果这不起作用,我发现a mailing post暗示
setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))
可能会做你想要的axis ij
。
答案 2 :(得分:9)
对于图像或等高线图,您可以使用关键字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()
答案 3 :(得分:7)
以下是实现此目的的基本方法
ax=pylab.gca()
ax.set_ylim(ax.get_ylim()[::-1])
答案 4 :(得分:4)
此
plt.ylim(max(plt.ylim()), min(plt.ylim()))
优于此
plt.gca().invert_yaxis()
并且如果您处于交互模式并且您重复绘制相同的绘图(可能具有更新的数据并且在绘图之后具有断点),则y轴将不会每次都保持反转。