Python Matplotlib事件处理:与平移/缩放的交互

Python Matplotlib事件处理:与平移/缩放的交互,python,matplotlib,event-handling,Python,Matplotlib,Event Handling,我正在2d数组上使用matplotlib的事件处理。 我有一个类,它基本上将数组的元素设置为0,通过在画布上手工绘制矩形来选择 MWE: 将numpy导入为np 将matplotlib.pyplot作为plt导入 def清洁(bw): plt.ioff() 图=plt.图() plt.title('按并拖动一个矩形作为遮罩。完成后关闭') plt.imshow(bw,cmap='binary') plt.轴(“相等”) x_press=无 y_press=无 def onpress(事件): 全

我正在2d数组上使用matplotlib的事件处理。 我有一个类,它基本上将数组的元素设置为0,通过在画布上手工绘制矩形来选择

MWE:

将numpy导入为np
将matplotlib.pyplot作为plt导入
def清洁(bw):
plt.ioff()
图=plt.图()
plt.title('按并拖动一个矩形作为遮罩。完成后关闭')
plt.imshow(bw,cmap='binary')
plt.轴(“相等”)
x_press=无
y_press=无
def onpress(事件):
全球x_出版社,y_出版社
x_press=int(event.xdata)if(event.xdata!=None)else无
y_press=int(event.ydata)如果(event.ydata!=None)其他无
def onrelease(事件):
全球x_出版社,y_出版社
x_release=int(event.xdata)if(event.xdata!=None)else无
y_release=int(event.ydata)if(event.ydata!=None)else无
如果(x_press!=无,y_press!=无
和x_release!=无和y_release!=无):

(xs,xe)=(x_press,x_release+1)如果(x_press尝试将其添加为onpress函数的第一行:

if plt.get_current_fig_manager().toolbar.mode != '': return
资料来源:

if plt.get_current_fig_manager().toolbar.mode != '': return