我有一个图形用户界面,显示一个情节。我想把这张图和现有的图像吻合。我在绘图下面显示了图像,使用:
myaxe.plot(...)
myaxeimage = myaxe.imshow(myimage, axpect='auto', extent=myaxe.axis(), zorder=-1)
我已经可以使用
myaxeimage.set_alpha()
现在,我想能够放大和缩小,并在图像周围移动,使用图形用户界面,而不接触现有的绘图和轴,以使它与我的绘图。换言之,我希望缩放到给定的sx
和sy
因子,并将图像的原点放在给定的(x,y)
点上,剪切图像超出轴的部分。我该怎么做?
有一个watermark example与matplotlib一起分布,有点类似。从该代码开始,我们可以修改如下:
使用
ax.imshow
先绘制图像。我这样做是因为extent
参数影响ax
的最终范围。因为我们希望最后的范围由plt.plot(...)
控制,所以让我们把它放在最后。使用
extent
来控制图像的位置和大小,而不是extent=myaxe.axis()
。extent=(1,15,0.3,0.7)
将图像放置在矩形中,(1, 0.3)
作为左下角,(15, 0.7)
作为右上角。使用
origin='upper'
,数组im
的[0,0]
索引放置在区段的左上角。使用origin='lower'
时,它应该放在左下角。如果要展开图像并将其剪辑到绘图范围,可能还需要使用
ax.set_xlim
和ax.set_ylim
:或者,为了获得更多控制,可以使用
myaximage.set_clip_path
将图像剪辑到任意路径:最后,我遵循tcaswell的建议,使用了两个不同的轴。这样,我只需使用图像轴的
set_xlim()
和set_ylim()
来更改图像的原点和/或缩放因子。为了得到低于我的图的图像,没有用图的边框隐藏它,我删除了图的边框,而是使用图像轴的边框。我还隐藏了图像轴上的记号。相关问题 更多 >
编程相关推荐