@@ -679,6 +679,7 @@ def set_label_coords(self, x, y, transform=None):
679
679
680
680
self .label .set_transform (transform )
681
681
self .label .set_position ((x , y ))
682
+ self .stale = True
682
683
683
684
def get_transform (self ):
684
685
return self ._scale .get_transform ()
@@ -743,6 +744,7 @@ def cla(self):
743
744
self .converter = None
744
745
self .units = None
745
746
self .set_units (None )
747
+ self .stale = True
746
748
747
749
def reset_ticks (self ):
748
750
# build a few default ticks; grow as necessary later; only
@@ -782,6 +784,7 @@ def set_tick_params(self, which='major', reset=False, **kw):
782
784
if which == 'minor' or which == 'both' :
783
785
for tick in self .minorTicks :
784
786
tick ._apply_params (** self ._minor_tick_kw )
787
+ self .stale = True
785
788
786
789
@staticmethod
787
790
def _translate_tick_kw (kw , to_init_kw = True ):
@@ -846,6 +849,7 @@ def set_clip_path(self, clippath, transform=None):
846
849
artist .Artist .set_clip_path (self , clippath , transform )
847
850
for child in self .majorTicks + self .minorTicks :
848
851
child .set_clip_path (clippath , transform )
852
+ self .stale = True
849
853
850
854
def get_view_interval (self ):
851
855
'return the Interval instance for this axis view limits'
@@ -928,6 +932,7 @@ def get_ticklabel_extents(self, renderer):
928
932
def set_smart_bounds (self , value ):
929
933
"""set the axis to have smart bounds"""
930
934
self ._smart_bounds = value
935
+ self .stale = True
931
936
932
937
def get_smart_bounds (self ):
933
938
"""get whether the axis has smart bounds"""
@@ -1125,6 +1130,7 @@ def draw(self, renderer, *args, **kwargs):
1125
1130
mpatches .bbox_artist (self .label , renderer )
1126
1131
1127
1132
renderer .close_group (__name__ )
1133
+ self .stale = False
1128
1134
1129
1135
def _get_label (self ):
1130
1136
raise NotImplementedError ('Derived must override' )
@@ -1365,6 +1371,7 @@ def grid(self, b=None, which='major', **kwargs):
1365
1371
if len (kwargs ):
1366
1372
tick .gridline .update (kwargs )
1367
1373
self ._major_tick_kw ['gridOn' ] = self ._gridOnMajor
1374
+ self .stale = True
1368
1375
1369
1376
def update_units (self , data ):
1370
1377
"""
@@ -1385,6 +1392,7 @@ def update_units(self, data):
1385
1392
1386
1393
if neednew :
1387
1394
self ._update_axisinfo ()
1395
+ self .stale = True
1388
1396
return True
1389
1397
1390
1398
def _update_axisinfo (self ):
@@ -1452,6 +1460,7 @@ def set_units(self, u):
1452
1460
self ._update_axisinfo ()
1453
1461
self .callbacks .process ('units' )
1454
1462
self .callbacks .process ('units finalize' )
1463
+ self .stale = True
1455
1464
1456
1465
def get_units (self ):
1457
1466
'return the units for axis'
@@ -1467,6 +1476,7 @@ def set_label_text(self, label, fontdict=None, **kwargs):
1467
1476
if fontdict is not None :
1468
1477
self .label .update (fontdict )
1469
1478
self .label .update (kwargs )
1479
+ self .stale = True
1470
1480
return self .label
1471
1481
1472
1482
def set_major_formatter (self , formatter ):
@@ -1478,6 +1488,7 @@ def set_major_formatter(self, formatter):
1478
1488
self .isDefault_majfmt = False
1479
1489
self .major .formatter = formatter
1480
1490
formatter .set_axis (self )
1491
+ self .stale = True
1481
1492
1482
1493
def set_minor_formatter (self , formatter ):
1483
1494
"""
@@ -1488,6 +1499,7 @@ def set_minor_formatter(self, formatter):
1488
1499
self .isDefault_minfmt = False
1489
1500
self .minor .formatter = formatter
1490
1501
formatter .set_axis (self )
1502
+ self .stale = True
1491
1503
1492
1504
def set_major_locator (self , locator ):
1493
1505
"""
@@ -1498,6 +1510,7 @@ def set_major_locator(self, locator):
1498
1510
self .isDefault_majloc = False
1499
1511
self .major .locator = locator
1500
1512
locator .set_axis (self )
1513
+ self .stale = True
1501
1514
1502
1515
def set_minor_locator (self , locator ):
1503
1516
"""
@@ -1508,6 +1521,7 @@ def set_minor_locator(self, locator):
1508
1521
self .isDefault_minloc = False
1509
1522
self .minor .locator = locator
1510
1523
locator .set_axis (self )
1524
+ self .stale = True
1511
1525
1512
1526
def set_pickradius (self , pickradius ):
1513
1527
"""
@@ -1567,6 +1581,7 @@ def set_ticklabels(self, ticklabels, *args, **kwargs):
1567
1581
if tick .label2On :
1568
1582
ret .append (tick .label2 )
1569
1583
1584
+ self .stale = True
1570
1585
return ret
1571
1586
1572
1587
def set_ticks (self , ticks , minor = False ):
@@ -1747,6 +1762,7 @@ def set_label_position(self, position):
1747
1762
msg = "Position accepts only [ 'top' | 'bottom' ]"
1748
1763
raise ValueError (msg )
1749
1764
self .label_position = position
1765
+ self .stale = True
1750
1766
1751
1767
def _update_label_position (self , bboxes , bboxes2 ):
1752
1768
"""
@@ -1851,6 +1867,7 @@ def set_ticks_position(self, position):
1851
1867
bottom = True , labelbottom = True )
1852
1868
else :
1853
1869
raise ValueError ("invalid position: %s" % position )
1870
+ self .stale = True
1854
1871
1855
1872
def tick_top (self ):
1856
1873
'use ticks only on top'
@@ -1929,6 +1946,7 @@ def set_data_interval(self, vmin, vmax, ignore=False):
1929
1946
else :
1930
1947
Vmin , Vmax = self .get_data_interval ()
1931
1948
self .axes .dataLim .intervalx = min (vmin , Vmin ), max (vmax , Vmax )
1949
+ self .stale = True
1932
1950
1933
1951
def set_default_intervals (self ):
1934
1952
'set the default limits for the axis interval if they are not mutated'
@@ -1946,6 +1964,7 @@ def set_default_intervals(self):
1946
1964
self .axes .dataLim .intervalx = xmin , xmax
1947
1965
if not viewMutated :
1948
1966
self .axes .viewLim .intervalx = xmin , xmax
1967
+ self .stale = True
1949
1968
1950
1969
1951
1970
class YAxis (Axis ):
@@ -2065,6 +2084,7 @@ def set_label_position(self, position):
2065
2084
msg = "Position accepts only [ 'left' | 'right' ]"
2066
2085
raise ValueError (msg )
2067
2086
self .label_position = position
2087
+ self .stale = True
2068
2088
2069
2089
def _update_label_position (self , bboxes , bboxes2 ):
2070
2090
"""
@@ -2127,6 +2147,7 @@ def set_offset_position(self, position):
2127
2147
2128
2148
self .offsetText .set_ha (position )
2129
2149
self .offsetText .set_position ((x , y ))
2150
+ self .stale = True
2130
2151
2131
2152
def get_text_widths (self , renderer ):
2132
2153
bbox , bbox2 = self .get_ticklabel_extents (renderer )
@@ -2176,6 +2197,7 @@ def set_ticks_position(self, position):
2176
2197
left = True , labelleft = True )
2177
2198
else :
2178
2199
raise ValueError ("invalid position: %s" % position )
2200
+ self .stale = True
2179
2201
2180
2202
def tick_right (self ):
2181
2203
'use ticks only on right'
@@ -2239,6 +2261,7 @@ def set_view_interval(self, vmin, vmax, ignore=False):
2239
2261
else :
2240
2262
self .axes .viewLim .intervaly = (max (vmin , vmax , Vmin ),
2241
2263
min (vmin , vmax , Vmax ))
2264
+ self .stale = True
2242
2265
2243
2266
def get_minpos (self ):
2244
2267
return self .axes .dataLim .minposy
@@ -2254,6 +2277,7 @@ def set_data_interval(self, vmin, vmax, ignore=False):
2254
2277
else :
2255
2278
Vmin , Vmax = self .get_data_interval ()
2256
2279
self .axes .dataLim .intervaly = min (vmin , Vmin ), max (vmax , Vmax )
2280
+ self .stale = True
2257
2281
2258
2282
def set_default_intervals (self ):
2259
2283
'set the default limits for the axis interval if they are not mutated'
@@ -2271,3 +2295,4 @@ def set_default_intervals(self):
2271
2295
self .axes .dataLim .intervaly = ymin , ymax
2272
2296
if not viewMutated :
2273
2297
self .axes .viewLim .intervaly = ymin , ymax
2298
+ self .stale = True
0 commit comments