Matplotlib坐标系原点调整为左上角
我想把matplotlib绘图的原点位置改到左上角,而不是默认的左下角。我现在使用的是matplotlib.pylab.plot来绘图(如果有其他更灵活的绘图方法,请告诉我)。
我在找类似于matlab命令:axis ij; 的功能。
另外,我已经花了几个小时在matplotlib的帮助文档和谷歌上搜索,但还是没有找到答案。如果能告诉我可以在哪里找到答案,那就太好了。
5 个回答
13
axis ij
的意思就是让y轴的数值往下增加,而不是往上对吧?如果是这样的话,使用 matplotlib.axes.invert_yaxis()
可能就能解决你的问题——不过我现在没法测试这个。
如果这个方法不行,我找到了一篇邮件帖子,里面建议可以试试
setp(gca(), 'ylim', reversed(getp(gca(), 'ylim')))
这段代码,可能会让你得到和 axis ij
类似的效果。
34
最简单的方法是使用:
plt.gca().invert_yaxis()
在你绘制完图像之后,Origin
只适用于 imshow
。
10
对于图像或轮廓图,你可以使用关键字 origin = None | 'lower' | 'upper'
来设置图像的起始位置。而对于线图,你可以将y轴的范围设置为从高到低。
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()