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

Skip to content

Commit 439cf08

Browse files
committed
Only do pchanged and set stale when value changes
1 parent 4477b11 commit 439cf08

File tree

2 files changed

+30
-24
lines changed

2 files changed

+30
-24
lines changed

lib/matplotlib/artist.py

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ def get_tightbbox(self, renderer=None):
353353
354354
Parameters
355355
----------
356-
renderer : `.RendererBase` subclass
356+
renderer : `~matplotlib.backend_bases.RendererBase` subclass, optional
357357
renderer that will be used to draw the figures (i.e.
358358
``fig.canvas.get_renderer()``)
359359
@@ -440,7 +440,7 @@ def set_transform(self, t):
440440
441441
Parameters
442442
----------
443-
t : `.Transform`
443+
t : `~matplotlib.transforms.Transform`
444444
"""
445445
self._transform = t
446446
self._transformSet = True
@@ -733,7 +733,7 @@ def set_figure(self, fig):
733733
734734
Parameters
735735
----------
736-
fig : `.Figure`
736+
fig : `~matplotlib.figure.Figure`
737737
"""
738738
# if this is a no-op just return
739739
if self.figure is fig:
@@ -757,15 +757,16 @@ def set_clip_box(self, clipbox):
757757
758758
Parameters
759759
----------
760-
clipbox : `.BboxBase` or None
761-
Typically would be created from a `.TransformedBbox`. For
762-
instance ``TransformedBbox(Bbox([[0, 0], [1, 1]]), ax.transAxes)``
763-
is the default clipping for an artist added to an Axes.
760+
clipbox : `~matplotlib.transforms.Bbox` or None
761+
Will typically be created from a `.TransformedBbox`. For instance,
762+
``TransformedBbox(Bbox([[0, 0], [1, 1]]), ax.transAxes)`` is the default
763+
clipping for an artist added to an Axes.
764764
765765
"""
766-
self.clipbox = clipbox
767-
self.pchanged()
768-
self.stale = True
766+
if clipbox != self.clipbox:
767+
self.clipbox = clipbox
768+
self.pchanged()
769+
self.stale = True
769770

770771
def set_clip_path(self, path, transform=None):
771772
"""
@@ -986,7 +987,7 @@ def draw(self, renderer):
986987
987988
Parameters
988989
----------
989-
renderer : `.RendererBase` subclass.
990+
renderer : `~matplotlib.backend_bases.RendererBase` subclass.
990991
991992
Notes
992993
-----
@@ -1010,9 +1011,10 @@ def set_alpha(self, alpha):
10101011
f'alpha must be numeric or None, not {type(alpha)}')
10111012
if alpha is not None and not (0 <= alpha <= 1):
10121013
raise ValueError(f'alpha ({alpha}) is outside 0-1 range')
1013-
self._alpha = alpha
1014-
self.pchanged()
1015-
self.stale = True
1014+
if alpha != self._alpha:
1015+
self._alpha = alpha
1016+
self.pchanged()
1017+
self.stale = True
10161018

10171019
def _set_alpha_for_array(self, alpha):
10181020
"""
@@ -1045,9 +1047,10 @@ def set_visible(self, b):
10451047
----------
10461048
b : bool
10471049
"""
1048-
self._visible = b
1049-
self.pchanged()
1050-
self.stale = True
1050+
if b != self._visible:
1051+
self._visible = b
1052+
self.pchanged()
1053+
self.stale = True
10511054

10521055
def set_animated(self, b):
10531056
"""
@@ -1095,9 +1098,11 @@ def set_label(self, s):
10951098
s : object
10961099
*s* will be converted to a string by calling `str`.
10971100
"""
1098-
self._label = str(s) if s is not None else None
1099-
self.pchanged()
1100-
self.stale = True
1101+
label = str(s) if s is not None else None
1102+
if label != self._label:
1103+
self._label = label
1104+
self.pchanged()
1105+
self.stale = True
11011106

11021107
def get_zorder(self):
11031108
"""Return the artist's zorder."""
@@ -1114,9 +1119,10 @@ def set_zorder(self, level):
11141119
"""
11151120
if level is None:
11161121
level = self.__class__.zorder
1117-
self.zorder = level
1118-
self.pchanged()
1119-
self.stale = True
1122+
if level != self.zorder:
1123+
self.zorder = level
1124+
self.pchanged()
1125+
self.stale = True
11201126

11211127
@property
11221128
def sticky_edges(self):

lib/matplotlib/container.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def __new__(cls, *args, **kwargs):
1919
def __init__(self, kl, label=None):
2020
self._callbacks = cbook.CallbackRegistry(signals=["pchanged"])
2121
self._remove_method = None
22-
self.set_label(label)
22+
self._label = label
2323

2424
def remove(self):
2525
for c in cbook.flatten(

0 commit comments

Comments
 (0)