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

Skip to content

Commit 59dbd1e

Browse files
committed
Only do pchanged and set stale when value changes
1 parent c0d9c98 commit 59dbd1e

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

lib/matplotlib/artist.py

Lines changed: 27 additions & 21 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,16 +757,17 @@ def set_clip_box(self, clipbox):
757757
758758
Parameters
759759
----------
760-
clipbox : `.Bbox`
760+
clipbox : `~matplotlib.transforms.Bbox`
761761
762-
Typically would be created from a `.TransformedBbox`. For
762+
Will typically be created from a `.TransformedBbox`. For
763763
instance ``TransformedBbox(Bbox([[0, 0], [1, 1]]), ax.transAxes)``
764764
is the default clipping for an artist added to an Axes.
765765
766766
"""
767-
self.clipbox = clipbox
768-
self.pchanged()
769-
self.stale = True
767+
if clipbox != self.clipbox:
768+
self.clipbox = clipbox
769+
self.pchanged()
770+
self.stale = True
770771

771772
def set_clip_path(self, path, transform=None):
772773
"""
@@ -987,7 +988,7 @@ def draw(self, renderer):
987988
988989
Parameters
989990
----------
990-
renderer : `.RendererBase` subclass.
991+
renderer : `~matplotlib.backend_bases.RendererBase` subclass.
991992
992993
Notes
993994
-----
@@ -1011,9 +1012,10 @@ def set_alpha(self, alpha):
10111012
f'alpha must be numeric or None, not {type(alpha)}')
10121013
if alpha is not None and not (0 <= alpha <= 1):
10131014
raise ValueError(f'alpha ({alpha}) is outside 0-1 range')
1014-
self._alpha = alpha
1015-
self.pchanged()
1016-
self.stale = True
1015+
if alpha != self._alpha:
1016+
self._alpha = alpha
1017+
self.pchanged()
1018+
self.stale = True
10171019

10181020
def _set_alpha_for_array(self, alpha):
10191021
"""
@@ -1046,9 +1048,10 @@ def set_visible(self, b):
10461048
----------
10471049
b : bool
10481050
"""
1049-
self._visible = b
1050-
self.pchanged()
1051-
self.stale = True
1051+
if b != self._visible:
1052+
self._visible = b
1053+
self.pchanged()
1054+
self.stale = True
10521055

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

11031108
def get_zorder(self):
11041109
"""Return the artist's zorder."""
@@ -1115,9 +1120,10 @@ def set_zorder(self, level):
11151120
"""
11161121
if level is None:
11171122
level = self.__class__.zorder
1118-
self.zorder = level
1119-
self.pchanged()
1120-
self.stale = True
1123+
if level != self.zorder:
1124+
self.zorder = level
1125+
self.pchanged()
1126+
self.stale = True
11211127

11221128
@property
11231129
def sticky_edges(self):

0 commit comments

Comments
 (0)