@@ -463,9 +463,10 @@ def __init__(self, ax, mappable=None, *, cmap=None,
463
463
linewidths = [0.5 * mpl .rcParams ['axes.linewidth' ]])
464
464
self .ax .add_collection (self .dividers )
465
465
466
- self .locator = None
467
- self .minorlocator = None
468
- self .formatter = None
466
+ self ._locator = None
467
+ self ._minorlocator = None
468
+ self ._formatter = None
469
+ self ._minorformatter = None
469
470
self .__scale = None # linear, log10 for now. Hopefully more?
470
471
471
472
if ticklocation == 'auto' :
@@ -476,19 +477,19 @@ def __init__(self, ax, mappable=None, *, cmap=None,
476
477
self ._reset_locator_formatter_scale ()
477
478
478
479
if np .iterable (ticks ):
479
- self .locator = ticker .FixedLocator (ticks , nbins = len (ticks ))
480
+ self ._locator = ticker .FixedLocator (ticks , nbins = len (ticks ))
480
481
else :
481
- self .locator = ticks # Handle default in _ticker()
482
+ self ._locator = ticks # Handle default in _ticker()
482
483
483
484
if isinstance (format , str ):
484
485
# Check format between FormatStrFormatter and StrMethodFormatter
485
486
try :
486
- self .formatter = ticker .FormatStrFormatter (format )
487
- _ = self .formatter (0 )
487
+ self ._formatter = ticker .FormatStrFormatter (format )
488
+ _ = self ._formatter (0 )
488
489
except TypeError :
489
- self .formatter = ticker .StrMethodFormatter (format )
490
+ self ._formatter = ticker .StrMethodFormatter (format )
490
491
else :
491
- self .formatter = format # Assume it is a Formatter or None
492
+ self ._formatter = format # Assume it is a Formatter or None
492
493
self .draw_all ()
493
494
494
495
if isinstance (mappable , contour .ContourSet ) and not mappable .filled :
@@ -509,6 +510,66 @@ def __init__(self, ax, mappable=None, *, cmap=None,
509
510
# Set the cla function to the cbar's method to override it
510
511
self .ax .cla = self ._cbar_cla
511
512
5
8000
13
+ @property
514
+ def locator (self ):
515
+ """
516
+ Major locator being used for colorbar
517
+ """
518
+ return self ._long_axis ().get_major_locator ()
519
+
520
+ @locator .setter
521
+ def locator (self , loc ):
522
+ """
523
+ Set the major locator being used for colorbar
524
+ """
525
+ self ._long_axis ().set_major_locator (loc )
526
+ self ._locator = loc
527
+
528
+ @property
529
+ def minorlocator (self ):
530
+ """
531
+ Minor locator being used for colorbar
532
+ """
533
+ return self ._long_axis ().get_minor_locator ()
534
+
535
+ @minorlocator .setter
536
+ def minorlocator (self , loc ):
537
+ """
538
+ Set minor locator being used for colorbar
539
+ """
540
+ self ._long_axis ().set_minor_locator (loc )
541
+ self ._minorlocator = loc
542
+
543
+ @property
544
+ def formatter (self ):
545
+ """
546
+ Major formatter being used for colorbar
547
+ """
548
+ return self ._long_axis ().get_major_formatter ()
549
+
550
+ @formatter .setter
551
+ def formatter (self , fmt ):
552
+ """
553
+ Set major formatter being used for colorbar
554
+ """
555
+ self ._long_axis ().set_major_formatter (fmt )
556
+ self ._locator = fmt
557
+
558
+ @property
559
+ def minorformatter (self ):
560
+ """
561
+ Minor formatter being used for colorbar
562
+ """
563
+ return self ._long_axis ().get_minor_formatter ()
564
+
565
+ @minorformatter .setter
566
+ def minorformatter (self , fmt ):
567
+ """
568
+ Set minor formatter being used for colorbar
569
+ """
570
+ self ._long_axis ().set_minor_locator (fmt )
571
+ self ._minorformatter = fmt
572
+
512
573
def _cbar_cla (self ):
513
574
"""Function to clear the interactive colorbar state."""
514
575
for x in self ._interactive_funcs :
@@ -791,11 +852,11 @@ def update_ticks(self):
791
852
"""
792
853
Setup the ticks and ticklabels. This should not be needed by users.
793
854
"""
794
- # Get the locator and formatter; defaults to self.locator if not None.
855
+ # Get the locator and formatter; defaults to self._locator if not None.
79
F438
5
856
self ._get_ticker_locator_formatter ()
796
- self ._long_axis ().set_major_locator (self .locator )
797
- self ._long_axis ().set_minor_locator (self .minorlocator )
798
- self ._long_axis ().set_major_formatter (self .formatter )
857
+ self ._long_axis ().set_major_locator (self ._locator )
858
+ self ._long_axis ().set_minor_locator (self ._minorlocator )
859
+ self ._long_axis ().set_major_formatter (self ._formatter )
799
860
800
861
def _get_ticker_locator_formatter (self ):
801
862
"""
@@ -807,13 +868,15 @@ def _get_ticker_locator_formatter(self):
807
868
808
869
Called by update_ticks...
809
870
"""
810
- locator = self .locator
811
- formatter = self .formatter
812
- minorlocator = self .minorlocator
871
+ locator = self ._locator
872
+ formatter = self ._formatter
873
+ minorlocator = self ._minorlocator
813
874
if isinstance (self .norm , colors .BoundaryNorm ):
814
875
b = self .norm .boundaries
815
876
if locator is None :
816
877
locator = ticker .FixedLocator (b , nbins = 10 )
878
+ if minorlocator is None :
879
+ minorlocator = ticker .FixedLocator (b )
817
880
elif isinstance (self .norm , colors .NoNorm ):
818
881
if locator is None :
819
882
# put ticks on integers between the boundaries of NoNorm
@@ -838,9 +901,9 @@ def _get_ticker_locator_formatter(self):
838
901
if formatter is None :
839
902
formatter = self ._long_axis ().get_major_formatter ()
840
903
841
- self .locator = locator
842
- self .formatter = formatter
843
- self .minorlocator = minorlocator
904
+ self ._locator = locator
905
+ self ._formatter = formatter
906
+ self ._minorlocator = minorlocator
844
907
_log .debug ('locator: %r' , locator )
845
908
846
909
@_api .delete_parameter ("3.5" , "update_ticks" )
@@ -864,10 +927,10 @@ def set_ticks(self, ticks, update_ticks=True, labels=None, *,
864
927
if np .iterable (ticks ):
865
928
self ._long_axis ().set_ticks (ticks , labels = labels , minor = minor ,
866
929
** kwargs )
867
- self .locator = self ._long_axis ().get_major_locator ()
930
+ self ._locator = self ._long_axis ().get_major_locator ()
868
931
else :
869
- self .locator = ticks
870
- self ._long_axis ().set_major_locator (self .locator )
932
+ self ._locator = ticks
933
+ self ._long_axis ().set_major_locator (self ._locator )
871
934
self .stale = True
872
935
873
936
def get_ticks (self , minor = False ):
@@ -925,14 +988,14 @@ def minorticks_on(self):
925
988
"""
926
989
Turn on colorbar minor ticks.
927
990
"""
991
+ print (self ._minorlocator )
928
992
self .ax .minorticks_on ()
929
- self .minorlocator = self ._long_axis ().get_minor_locator ()
930
993
self ._short_axis ().set_minor_locator (ticker .NullLocator ())
931
994
932
995
def minorticks_off (self ):
933
996
"""Turn the minor ticks of the colorbar off."""
934
- self .minorlocator = ticker .NullLocator ()
935
- self ._long_axis ().set_minor_locator (self .minorlocator )
997
+ self ._minorlocator = ticker .NullLocator ()
998
+ self ._long_axis ().set_minor_locator (self ._minorlocator )
936
999
937
1000
def set_label (self , label , * , loc = None , ** kwargs ):
938
1001
"""
@@ -1170,9 +1233,9 @@ def _reset_locator_formatter_scale(self):
1170
1233
the mappable normal gets changed: Colorbar.update_normal)
1171
1234
"""
1172
1235
self ._process_values ()
1173
- self .locator = None
1174
- self .minorlocator = None
1175
- self .formatter = None
1236
+ self ._locator = None
1237
+ self ._minorlocator = None
1238
+ self ._formatter = None
1176
1239
if (self .boundaries is not None or
1177
1240
isinstance (self .norm , colors .BoundaryNorm )):
1178
1241
if self .spacing == 'uniform' :
0 commit comments