Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib放大矩形:跨子地块/外轴绘制_Python_Matplotlib - Fatal编程技术网

Python Matplotlib放大矩形:跨子地块/外轴绘制

Python Matplotlib放大矩形:跨子地块/外轴绘制,python,matplotlib,Python,Matplotlib,有没有一种方法可以创建一个在子图上或轴外部绘制的放大矩形?当前的matplotlib导航放大矩形允许您在一个轴内单击并拖动矩形,但我希望该选项可以将虚线矩形延伸到鼠标所在的位置 这个想法可以是创建一个新的轴来填充整个图形并使其透明。然后可以对该轴使用矩形选择器 不,默认情况下是不可能的。我想主要原因是没有实现这一点,因为完全不清楚如果你在不同的子图上缩放会发生什么。所以仅仅在子图上绘制是不可能的?我不想让它放大,我只想在我点击拖动的时候画出那个矩形。我想这是可能的。但是它有什么用途呢?我将我的子

有没有一种方法可以创建一个在子图上或轴外部绘制的放大矩形?当前的matplotlib导航放大矩形允许您在一个轴内单击并拖动矩形,但我希望该选项可以将虚线矩形延伸到鼠标所在的位置

这个想法可以是创建一个新的轴来填充整个图形并使其透明。然后可以对该轴使用矩形选择器


不,默认情况下是不可能的。我想主要原因是没有实现这一点,因为完全不清楚如果你在不同的子图上缩放会发生什么。所以仅仅在子图上绘制是不可能的?我不想让它放大,我只想在我点击拖动的时候画出那个矩形。我想这是可能的。但是它有什么用途呢?我将我的子绘图嵌入到QtGui.main窗口中,并尝试在单击并拖动绘图时绘制一个矩形,直到更新结束。然后我问这个问题,看看是否有可能在子地块上扩展放大矩形。我没有问题注册哪些Suplot包含在点击和拖动中,只是在拖动时绘制矩形。其目的是让用户直观地知道他们绘制的区域,但实现的功能是为该区域中包含的子地块创建一个弹出窗口。哇,太棒了!非常感谢。
from matplotlib.widgets import RectangleSelector
import numpy as np
import matplotlib.pyplot as plt


fig, axes = plt.subplots(2,2)
for ax in axes.flat:
    ax.scatter(np.random.rand(7), np.random.rand(7), c=np.random.rand(7))

def select(eclick, erelease):
    x1, y1 = eclick.xdata, eclick.ydata
    x2, y2 = erelease.xdata, erelease.ydata
    pass

overax = fig.add_axes([0,0,1,1])
overax.patch.set_alpha(0)
overax.axis("off")

rs = RectangleSelector(overax, select,
                       drawtype='box', useblit=True,
                       button=[1, 3],
                       minspanx=5, minspany=5,
                       spancoords='pixels',
                       interactive=True)

plt.show()