From be81f83608aeb0e42cddf9921b7e88c98fe7795f Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Mon, 3 Jul 2023 20:43:07 +0200 Subject: [PATCH 1/3] avoid double call to axis.clear in clf() --- lib/matplotlib/axes/_base.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 5b275d67306f..9adb044c11c6 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -1275,6 +1275,7 @@ def __clear(self): for axis in self._axis_map.values(): axis.clear() # Also resets the scale to linear. for spine in self.spines.values(): + spine.axis = None # avoid expensive methods in the clearing of the spine spine.clear() self.ignore_existing_data_limits = True From bff26576f7a3163ef8b067d141c9d896dc05ef01 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Mon, 3 Jul 2023 20:59:23 +0200 Subject: [PATCH 2/3] add gh link --- lib/matplotlib/axes/_base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 9adb044c11c6..8556c22cb2d8 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -1275,7 +1275,8 @@ def __clear(self): for axis in self._axis_map.values(): axis.clear() # Also resets the scale to linear. for spine in self.spines.values(): - spine.axis = None # avoid expensive methods in the clearing of the spine + # avoid expensive methods in the clearing of the spine, gh-26243 + spine.axis = None spine.clear() self.ignore_existing_data_limits = True From 86768ae304b4984fac78b632e06afad77301217b Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Mon, 3 Jul 2023 21:26:30 +0200 Subject: [PATCH 3/3] reset spine axis --- lib/matplotlib/axes/_base.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 8556c22cb2d8..6f00698b7b87 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -1276,8 +1276,10 @@ def __clear(self): axis.clear() # Also resets the scale to linear. for spine in self.spines.values(): # avoid expensive methods in the clearing of the spine, gh-26243 + tmp_axis = spine.axis spine.axis = None spine.clear() + spine.axis = tmp_axis self.ignore_existing_data_limits = True self.callbacks = cbook.CallbackRegistry(