@@ -440,9 +440,10 @@ def __init__(self, ax, mappable=None, *, cmap=None,
440
440
linewidths = [0.5 * mpl .rcParams ['axes.linewidth' ]])
441
441
self .ax .add_collection (self .dividers )
442
442
443
- self .locator = None
444
- self .minorlocator = None
445
- self .formatter = None
443
+ self ._locator = None
444
+ self ._minorlocator = None
445
+ self ._form
10000
atter = None
446
+ self ._minorformatter = None
446
447
self .__scale = None # linear, log10 for now. Hopefully more?
447
448
448
449
if ticklocation == 'auto' :
@@ -453,19 +454,19 @@ def __init__(self, ax, mappable=None, *, cmap=None,
453
454
self ._reset_locator_formatter_scale ()
454
455
455
456
if np .iterable (ticks ):
456
- self .locator = ticker .FixedLocator (ticks , nbins = len (ticks ))
457
+ self ._locator = ticker .FixedLocator (ticks , nbins = len (ticks ))
457
458
else :
458
- self .locator = ticks # Handle default in _ticker()
459
+ self ._locator = ticks # Handle default in _ticker()
459
460
460
461
if isinstance (format , str ):
461
462
# Check format between FormatStrFormatter and StrMethodFormatter
462
463
try :
463
- self .formatter = ticker .FormatStrFormatter (format )
464
- _ = self .formatter (0 )
464
+ self ._formatter = ticker .FormatStrFormatter (format )
465
+ _ = self ._formatter (0 )
465
466
except TypeError :
466
- self .formatter = ticker .StrMethodFormatter (format )
467
+ self ._formatter = ticker .StrMethodFormatter (format )
467
468
else :
468
- self .formatter = format # Assume it is a Formatter or None
469
+ self ._formatter = format # Assume it is a Formatter or None
469
470
self ._draw_all ()
470
471
471
472
if isinstance (mappable , contour .ContourSet ) and not mappable .filled :
@@ -486,6 +487,46 @@ def __init__(self, ax, mappable=None, *, cmap=None,
486
487
# Set the cla function to the cbar's method to override it
487
488
self .ax .cla = self ._cbar_cla
488
489
490
+ @property
491
+ def locator (self ):
492
+ """Major tick `.Locator` for the colorbar."""
493
+ return self ._long_axis ().get_major_locator ()
494
+
495
+ @locator .setter
496
+ def locator (self , loc ):
497
+ self ._long_axis ().set_major_locator (loc )
498
+ self ._locator = loc
499
+
500
+ @property
501
+ def minorlocator (self ):
502
+ """Minor tick `.Locator` for the colorbar."""
503
+ return self ._long_axis ().get_minor_locator ()
504
+
505
+ @minorlocator .setter
506
+ def minorlocator (self , loc ):
507
+ self ._long_axis ().set_minor_locator (loc )
508
+ self ._minorlocator = loc
509
+
510
+ @property
511
+ def formatter (self ):
512
+ """Major tick label `.Formatter` for the colorbar."""
513
+ return self ._long_axis ().get_major_formatter ()
514
+
515
+ @formatter .setter
516
+ def formatter (self , fmt ):
517
+ self ._long_axis ().set_major_formatter (fmt )
518
+ self ._formatter = fmt
519
+
520
+ @property
521
+ def minorformatter (self ):
522
+ """Minor tick `.Formatter` for the colorbar."""
523
+ return self ._long_axis ().get_minor_formatter ()
524
+
525
+ @minorformatter .setter
526
+ def minorformatter (self , fmt ):
527
+ self ._long_axis ().set_minor_formatter (fmt )
528
+ self ._minorformatter = fmt
529
+
489
530
def _cbar_cla (self ):
490
531
"""Function to clear the interactive colorbar state."""
491
532
for x in self ._interactive_funcs :
@@ -778,11 +819,11 @@ def update_ticks(self):
778
819
"""
779
820
Setup the ticks and ticklabels. This should not be needed by users.
780
821
"""
781
- # Get the locator and formatter; defaults to self.locator if not None.
822
+ # Get the locator and formatter; defaults to self._locator if not None.
782
823
self ._get_ticker_locator_formatter ()
783
- self ._long_axis ().set_major_locator (self .locator )
784
- self ._long_axis ().set_minor_locator (self .minorlocator )
785
- self ._long_axis ().set_major_formatter (self .formatter )
824
+ self ._long_axis ().set_major_locator (self ._locator )
825
+ self ._long_axis ().set_minor_locator (self ._minorlocator )
826
+ self ._long_axis ().set_major_formatter (self ._formatter )
786
827
787
828
def _get_ticker_locator_formatter (self ):
788
829
"""
@@ -794,13 +835,15 @@ def _get_ticker_locator_formatter(self):
794
835
795
836
Called by update_ticks...
796
837
"""
797
- locator = self .locator
798
- formatter = self .formatter
799
- minorlocator = self .minorlocator
838
+ locator = self ._locator
839
+ formatter = self ._formatter
840
+ minorlocator = self ._minorlocator
800
841
if isinstance (self .norm , colors .BoundaryNorm ):
801
842
b = self .norm .boundaries
802
843
if locator is None :
803
844
locator = ticker .FixedLocator (b , nbins = 10 )
845
+ if minorlocator is None :
846
+ minorlocator = ticker .FixedLocator (b )
804
847
elif isinstance (self .norm , colors .NoNorm ):
805
848
if locator is None :
806
849
# put ticks on integers between the boundaries of NoNorm
@@ -825,9 +868,9 @@ def _get_ticker_locator_formatter(self):
825
868
if formatter is None :
826
869
formatter = self ._long_axis ().get_major_formatter ()
827
870
828
- self .locator = locator
829
- self .formatter = formatter
830
- self .minorlocator = minorlocator
871
+ self ._locator = locator
872
+ self ._formatter = formatter
873
+ self ._minorlocator = minorlocator
831
874
_log .debug ('locator: %r' , locator )
832
875
833
876
@_api .delete_parameter ("3.5" , "update_ticks" )
@@ -851,10 +894,10 @@ def set_ticks(self, ticks, update_ticks=True, labels=None, *,
851
894
if np .iterable (ticks ):
852
895
self ._long_axis ().set_ticks (ticks , labels = labels , minor = minor ,
853
896
** kwargs )
854
- self .locator = self ._long_axis ().get_major_locator ()
897
+ self ._locator = self ._long_axis ().get_major_locator ()
855
898
else :
856
- self .locator = ticks
857
- self ._long_axis ().set_major_locator (self .locator )
899
+ self ._locator = ticks
900
+ self ._long_axis ().set_major_locator (self ._locator )
858
901
self .stale = True
859
902
860
903
def get_ticks (self , minor = False ):
@@ -913,13 +956,12 @@ def minorticks_on(self):
913
956
Turn on colorbar minor ticks.
914
957
"""
915
958
self .ax .minorticks_on ()
916
- self .minorlocator = self ._long_axis ().get_minor_locator ()
917
959
self ._short_axis ().set_minor_locator (ticker .NullLocator ())
918
960
919
961
def minorticks_off (self ):
920
962
"""Turn the minor ticks of the colorbar off."""
921
- self .minorlocator = ticker .NullLocator ()
922
- self ._long_axis ().set_minor_locator (self .minorlocator )
963
+ self ._minorlocator = ticker .NullLocator ()
964
+ self ._long_axis ().set_minor_locator (self ._minorlocator )
923
965
924
966
def set_label (self , label , * , loc = None , ** kwargs ):
925
967
"""
@@ -1157,9 +1199,10 @@ def _reset_locator_formatter_scale(self):
1157
1199
the mappable normal gets changed: Colorbar.update_normal)
1158
1200
"""
1159
1201
self ._process_values ()
1160
- self .locator = None
1161
- self .minorlocator = None
1162
- self .formatter = None
1202
+ self ._locator = None
1203
+ self ._minorlocator = None
1204
+ self ._formatter = None
1205
+ self ._minorformatter = None
1163
1206
if (self .boundaries is not None or
1164
1207
isinstance (self .norm , colors .BoundaryNorm )):
1165
1208
if self .spacing == 'uniform' :
0 commit comments