2017-09-09 132 views
0

我想知道如何使用pyplot imshow来保持视口大小恒定的同时滚动(上/下,左/右)。在pyplot上的平移imshow

我的想法是采取一个大的numpy阵列(图像),但我只想显示一小部分在一次。这将是完美的,如果我可以添加一些平移手形光标,以推上/下/右/左我的视口。

任何提示?

+0

Matplotlib默认提供缩放和平移功能。使用它的问题究竟是什么? – ImportanceOfBeingErnest

+0

我知道matplotlib提供了这样的功能。关键是,当使用“大数组”的imshow时,我没有我需要的变焦细节,这就是为什么我需要设置小于大数组的视区并沿水平和垂直方向滚动。 –

+0

因此,我应该从显示其中一个区域(例如,视口)开始避免显示没有缩放的大图像,从而避免用户选择要缩放的区域。 –

回答

0

要打开我的意见变成一个答案:

Matplotlib提供了必要的工具进行平移默认的情节。详情请见Interactive navigation article

enter image description here 的平移/缩放按钮
此按钮有两种模式:平移和缩放。点击工具栏按钮激活平移和缩放,然后将鼠标放在轴上的某处。按住鼠标左键并平移图形,将其拖动到新的位置。当你释放它时,你按下的点的数据将被移动到你释放的点。如果在平移时按“x”或“y”,运动将分别限制在x或y轴上。 [...]您可以使用修改键'x','y'或'CONTROL'分别将缩放限制为x轴,y轴或纵横比保留。

enter image description here

限制轴是可能的例如通过ax.set_xlim(xmin,xmax)ax.set_ylim(ymin,ymax)或通过ax.axis([xmin,xmax,ymin,ymax])

import numpy as np 
import matplotlib.pyplot as plt 

im = np.random.rand(600,800) 

plt.imshow(im) 
plt.gca().axis([200,300,150,250]) 

plt.show()