Matplotlib coord.sys来自左上角

Nat*_*ate 15 python axes matplotlib

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

我正在寻找相当于matlab的命令:axis ij;

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

G M*_*G M 15

最简单的方法是使用:

plt.gca().invert_yaxis()
Run Code Online (Sandbox Code Playgroud)

绘制图像后.Origin仅适用于imshow.


Mar*_*off 12

axis ij只是让y轴向下而不是向上增加,对吧?如果是这样,那么matplotlib.axes.invert_yaxis()可能就是你所需要的 - 但我现在无法测试它.

如果不工作,我发现了一个邮件后提示

setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))
Run Code Online (Sandbox Code Playgroud)

可能会做你想要的东西axis ij.


tom*_*m10 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()
Run Code Online (Sandbox Code Playgroud)


小智 7

以下是实现此目的的基本方法

ax=pylab.gca()

ax.set_ylim(ax.get_ylim()[::-1])
Run Code Online (Sandbox Code Playgroud)


mar*_*ako 6

plt.ylim(max(plt.ylim()), min(plt.ylim()))
Run Code Online (Sandbox Code Playgroud)

比这个有优势

plt.gca().invert_yaxis()
Run Code Online (Sandbox Code Playgroud)

如果您处于交互模式并且重复绘制相同的图(可能使用更新的数据并在图后有一个断点),则 y 轴不会每次都保持反转。