@@ -641,9 +641,17 @@ def __call__(self):
641
641
'Return the locations of the ticks'
642
642
raise NotImplementedError ('Derived must override' )
643
643
644
+ def view_limits (self , vmin , vmax ):
645
+ """
646
+ select a scale for the range from vmin to vmax
647
+
648
+ Normally This will be overridden.
649
+ """
650
+ return mtransforms .nonsingular (vmin , vmax )
651
+
644
652
def autoscale (self ):
645
653
'autoscale the view limits'
646
- return mtransforms . nonsingular (* self .axis .get_view_interval ())
654
+ return self . view_limits (* self .axis .get_view_interval ())
647
655
648
656
def pan (self , numsteps ):
649
657
'Pan numticks (can be positive or negative)'
@@ -773,11 +781,9 @@ def __call__(self):
773
781
def _set_numticks (self ):
774
782
self .numticks = 11 # todo; be smart here; this is just for dev
775
783
776
- def autoscale (self ):
784
+ def view_limits (self , vmin , vmax ):
777
785
'Try to choose the view limits intelligently'
778
786
779
- vmin , vmax = self .axis .get_data_interval ()
780
-
781
787
if vmax < vmin :
782
788
vmin , vmax = vmax , vmin
783
789
@@ -859,13 +865,11 @@ def __call__(self):
859
865
locs = vmin + np .arange (n + 1 ) * base
860
866
return locs
861
867
862
- def autoscale (self ):
868
+ def view_limits (self , dmin , dmax ):
863
869
"""
864
870
Set the view limits to the nearest multiples of base that
865
871
contain the data
866
872
"""
867
- dmin , dmax = self .axis .get_data_interval ()
868
-
869
873
vmin = self ._base .le (dmin )
870
874
vmax = self ._base .ge (dmax )
871
875
if vmin == vmax :
@@ -946,8 +950,7 @@ def __call__(self):
946
950
vmin , vmax = mtransforms .nonsingular (vmin , vmax , expander = 0.05 )
947
951
return self .bin_boundaries (vmin , vmax )
948
952
949
- def autoscale (self ):
950
- dmin , dmax = self .axis .get_data_interval ()
953
+ def view_limits (self , dmin , dmax ):
951
954
if self ._symmetric :
952
955
maxabs = max (abs (dmin ), abs (dmax ))
953
956
dmin = - maxabs
@@ -1043,9 +1046,9 @@ def __call__(self):
1043
1046
1044
1047
return np .array (ticklocs )
1045
1048
1046
- def autoscale (self ):
1049
+ def view_limits (self , vmin , vmax ):
1047
1050
'Try to choose the view limits intelligently'
1048
- vmin , vmax = self . axis . get_data_interval ()
1051
+
1049
1052
if vmax < vmin :
1050
1053
vmin , vmax = vmax , vmin
1051
1054
@@ -1114,10 +1117,9 @@ def __call__(self):
1114
1117
ticklocs = np .sign (decades ) * b ** np .abs (decades )
1115
1118
return np .array (ticklocs )
1116
1119
1117
- def autoscale (self ):
1120
+ def view_limits (self , vmin , vmax ):
1118
1121
'Try to choose the view limits intelligently'
1119
1122
b = self ._transform .base
1120
- vmin , vmax = self .axis .get_data_interval ()
1121
1123
if vmax < vmin :
1122
1124
vmin , vmax = vmax , vmin
1123
1125
@@ -1167,13 +1169,12 @@ def refresh(self):
1167
1169
d = abs (vmax - vmin )
1168
1170
self ._locator = self .get_locator (d )
1169
1171
1170
- def autoscale (self ):
1172
+ def view_limits (self , vmin , vmax ):
1171
1173
'Try to choose the view limits intelligently'
1172
1174
1173
- vmin , vmax = self .axis .get_data_interval ()
1174
1175
d = abs (vmax - vmin )
1175
1176
self ._locator = self .get_locator (d )
1176
- return self ._locator .autoscale ( )
1177
+ return self ._locator .view_limits ( vmin , vmax )
1177
1178
1178
1179
def get_locator (self , d ):
1179
1180
'pick the best locator based on a distance'
0 commit comments