我有一个问题,我正在制作一个程序,显示秘鲁的缩放区域,但显示的轴在图像的范围内(例如7000x7500),但我想要在UTM范围内(例如x轴在500000之间) -600000和y轴9500000-9700000)
我尝试过使用plt.set_xlim
和plt.sety_lim
但没有成功,我想我必须使用plt.autoscale(False)
,但它也不起作用,或者我用错了。
我从主程序中创建了图形和轴
f = plt.figure(figsize=(5,5))
axe = f.add_axes([0, 0, 1, 1])
这是我每次想要绘制的函数
def plotear(self, mapa):
axe.clear()
axe.imshow(mapa, cmap='gray', interpolation='nearest')
axe.set_xlim(0,10000) #This is just for testing
axe.set_ylim(0,10000) #This is just for testing
plt.autoscale(False)
self.canvas.draw()
<小时/> 编辑:@ ImportanceOfBeingErnest的答案按预期工作!现在我有另一个问题,在我展示图像的画布中,x轴和y轴没有正确显示,这里是一个图像example 我怎么能解决它?感谢。
答案 0 :(得分:1)
从imshow
documentation您发现有一个参数extent
可用于缩放图片。
extent
:标量(左,右,下,上),可选,默认:无
数据坐标中左下角和右上角的位置。如果为None,则定位图像使得像素中心落在从零开始(行,列)的索引上。
在这种情况下,您可以像
一样使用它ax.imshow(mapa, extent=[5e5, 6e5, 9.5e6, 9.7e6])
<小时/> 回答编辑过的问题:
axe = f.add_axes([0, 0, 1, 1])
引起的。您应该使用ax = fig.add_subplot(111)
,如果边距不是您想要的,请将plt.subplots_adjust( ... )
设置为相应的间距。