Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 54ddc90

Browse files
author
Federico Ariza
committed
add figure on trigger to make sure axes are already populated
1 parent f8c03d5 commit 54ddc90

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

lib/matplotlib/backend_tools.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -484,16 +484,16 @@ def __init__(self, *args, **kwargs):
484484
self.home_views = WeakKeyDictionary()
485485
ToolBase.__init__(self, *args, **kwargs)
486486

487-
def set_figure(self, figure):
488-
self._figure = figure
489-
if figure not in self.views:
490-
self.views[figure] = cbook.Stack()
491-
self.positions[figure] = cbook.Stack()
492-
self.home_views[figure] = WeakKeyDictionary()
487+
def add_figure(self):
488+
"""Add the current figure to the stack of views and positions"""
489+
if self.figure not in self.views:
490+
self.views[self.figure] = cbook.Stack()
491+
self.positions[self.figure] = cbook.Stack()
492+
self.home_views[self.figure] = WeakKeyDictionary()
493493
# Define Home
494494
self.push_current()
495495
# Make sure we add a home view for new axes as they're added
496-
figure.add_axobserver(lambda fig: self.update_home_views())
496+
self.figure.add_axobserver(lambda fig: self.update_home_views())
497497

498498
def clear(self, figure):
499499
"""Reset the axes stack"""
@@ -618,6 +618,7 @@ class ViewsPositionsBase(ToolBase):
618618
_on_trigger = None
619619

620620
def trigger(self, sender, event, data=None):
621+
self.toolmanager.get_tool(_views_positions).add_figure()
621622
getattr(self.toolmanager.get_tool(_views_positions),
622623
self._on_trigger)()
623624
self.toolmanager.get_tool(_views_positions).update_view()
@@ -697,6 +698,7 @@ def disable(self, event):
697698
self.figure.canvas.mpl_disconnect(self._idScroll)
698699

699700
def trigger(self, sender, event, data=None):
701+
self.toolmanager.get_tool(_views_positions).add_figure()
700702
ToolToggleBase.trigger(self, sender, event, data)
701703

702704
def scroll_zoom(self, event):

0 commit comments

Comments
 (0)