1
因此,在matplotlib縮放中,當縮放時按'x'或'y'只會縮放x或y軸。我想稍微修改一下NavigationToolbar2在backend_bases.py中的子類Matplotlib:確定鼠標在軸文本矩形中的位置
具體來說,已經放置了我的座標軸),或者在圖的左側或右側,選擇使用_zoom_mode ='x'或'y'進行放大。 (除了保持默認縮放當鼠標是小區裏面RECT功能。)
看着backend_bases,看來我需要修改的方法是press_zoom
def press_zoom(self, event):
if event.button=1:
self._button_pressed=1
elif event.button == 3:
self._button_pressed=3
else:
self._button_pressed=None
return
x, y = event.x, event.y
# push the current view to define home if stack is empty
if self._views.empty(): self.push_current()
self._xypress=[]
for i, a in enumerate(self.canvas.figure.get_axes()):
if (x is not None and y is not None and a.in_axes(event) and
a.get_navigate() and a.can_zoom()) :
self._xypress.append((x, y, a, i, a.viewLim.frozen(),
a.transData.frozen()))
id1 = self.canvas.mpl_connect('motion_notify_event', self.drag_zoom)
id2 = self.canvas.mpl_connect('key_press_event',
self._switch_on_zoom_mode)
id3 = self.canvas.mpl_connect('key_release_event',
self._switch_off_zoom_mode)
self._ids_zoom = id1, id2, id3
self._zoom_mode = event.key
self.press(event)
,並添加ELIF到那裏的大if語句並使用它來設置縮放模式,但是我還不知道(還)是如何判斷鼠標是否位於適合'x'或'y'縮放模式的區域。
那麼,我該如何判斷鼠標是否在一個陰謀之外?
這工作完美!我不知道如何以這種方式獲取座標軸。謝謝。 – Ihall