Matplotlib coord。 sys来自左上角

时间:2009-08-28 20:40:32

标签: python matplotlib axes

如何将matplotlib图的原点翻转到左上角 - 而不是默认的左下角?我正在使用matplotlib.pylab.plot来生成绘图(尽管如果有另一个绘图例程更灵活,请告诉我。)

我正在寻找matlab命令的等价物:axis ij;

此外,我花了几个小时冲浪matplotlib帮助和谷歌但没有得到答案。关于我可以在哪里查找答案的一些信息也会有所帮助。

5 个答案:

答案 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轴将不会每次都保持反转。