Python Matplotlib放大矩形:跨子地块/外轴绘制
有没有一种方法可以创建一个在子图上或轴外部绘制的放大矩形?当前的matplotlib导航放大矩形允许您在一个轴内单击并拖动矩形,但我希望该选项可以将虚线矩形延伸到鼠标所在的位置 这个想法可以是创建一个新的轴来填充整个图形并使其透明。然后可以对该轴使用矩形选择器Python Matplotlib放大矩形:跨子地块/外轴绘制,python,matplotlib,Python,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()