放大 matplotlib.pyplot 图形后使用 RectangleSelector?

Use RectangleSelector after zooming in a matplotlib.pyplot figure?

我想知道是否有办法在缩放后保持 matplotlib 的 RectangleSelector 激活。为了避免我的问题和现有问题之间可能出现的混淆,请注意

我可以使用 RectangleSelector at original view persistently:

而我 select 的矩形是 :

想要实现的是先放大图像区域,然后 select 在该缩放范围内的矩形区域。

这是重现我的用例的示例代码:

import matplotlib.pyplot as plt
from skimage import data as image_data
import matplotlib.widgets as mwidgets

def onselect(eclick, erelease):
    """
    Handles the rectangle selection event.
    :param eclick: the click event
    :param erelease: the release event
    """

    # only if middle button has been held down
    if eclick.button != 2 or erelease.button != 2:
        return

    print(eclick.xdata, eclick.ydata)
    print(erelease.xdata, erelease.ydata)

def update_callback(event):
    """
    Handles the update event.
    :param event: the update event
    """
    if r_selector.active:
        r_selector.update()

fig, ax = plt.subplots(figsize=(20,40))

im = ax.imshow(image_data.retina(), cmap='jet')

props = dict(facecolor='blue', alpha=0.5)
r_selector = mwidgets.RectangleSelector(ax, onselect, interactive=True)

fig.canvas.mpl_connect('draw_event', update_callback)

plt.show()

我发现在放大图像时阻碍我绘制另一个矩形的原因是我对缩放按钮(下图中标有蓝色的部分)的工作原理缺乏了解。例如,我在下面的情况下无法绘制矩形。

但是一旦按下缩放按钮,它就会完全禁用 RectangleSelector 小部件。但是,如果您再次单击以取消按下它,RectangleSelector 将再次激活。