@@ -1890,6 +1890,34 @@ def get_minpos(self):
1890
1890
raise NotImplementedError ()
1891
1891
1892
1892
1893
+ def _make_getset_interval (method_name , lim_name , attr_name ):
1894
+ """
1895
+ Helper to generate ``get_{data,view}_interval`` and
1896
+ ``set_{data,view}_interval`` implementations.
1897
+ """
1898
+
1899
+ def getter (self ):
1900
+ # docstring inherited.
1901
+ return getattr (getattr (self .axes , lim_name ), attr_name )
1902
+
1903
+ def setter (self , vmin , vmax , ignore = False ):
1904
+ # docstring inherited.
1905
+ if ignore :
1906
+ setattr (getattr (self .axes , lim_name ), attr_name , (vmin , vmax ))
1907
+ else :
1908
+ oldmin , oldmax = getter (self )
1909
+ if oldmin < oldmax :
1910
+ setter (self , min (vmin , oldmin ), max (vmax , oldmax ), ignore = True )
1911
+ else :
1912
+ setter (self , max (vmax , oldmax ), min (vmin , oldmin ), ignore = True )
1913
+ self .stale = True
1914
+
1915
+ getter .__name__ = f"get_{ method_name } _interval"
1916
+ setter .__name__ = f"set_{ method_name } _interval"
1917
+
1918
+ return getter , setter
1919
+
1920
+
1893
1921
class XAxis (Axis ):
1894
1922
__name__ = 'xaxis'
1895
1923
axis_name = 'x'
@@ -2133,39 +2161,14 @@ def get_ticks_position(self):
2133
2161
"default" : "default" , "unknown" : "unknown" }[
2134
2162
self ._get_ticks_position ()]
2135
2163
2136
- def get_view_interval (self ):
2137
- # docstring inherited
2138
- return self .axes .viewLim .intervalx
2139
-
2140
- def set_view_interval (self , vmin , vmax , ignore = False ):
2141
- # docstring inherited
2142
- if ignore :
2143
- self .axes .viewLim .intervalx = vmin , vmax
2144
- else :
2145
- Vmin , Vmax = self .get_view_interval ()
2146
- if Vmin < Vmax :
2147
- self .axes .viewLim .intervalx = (min (vmin , vmax , Vmin ),
2148
- max (vmin , vmax , Vmax ))
2149
- else :
2150
- self .axes .viewLim .intervalx = (max (vmin , vmax , Vmin ),
2151
- min (vmin , vmax , Vmax ))
2164
+ get_view_interval , set_view_interval = _make_getset_interval (
2165
+ "view" , "viewLim" , "intervalx" )
2166
+ get_data_interval , set_data_interval = _make_getset_interval (
2167
+ "data" , "dataLim&qu
8000
ot; , "intervalx" )
2152
2168
2153
2169
def get_minpos (self ):
2154
2170
return self .axes .dataLim .minposx
2155
2171
2156
- def get_data_interval (self ):
2157
- # docstring inherited
2158
- return self .axes .dataLim .intervalx
2159
-
2160
- def set_data_interval (self , vmin , vmax , ignore = False ):
2161
- # docstring inherited
2162
- if ignore :
2163
- self .axes .dataLim .intervalx = vmin , vmax
2164
- else :
2165
- Vmin , Vmax = self .get_data_interval ()
2166
- self .axes .dataLim .intervalx = min (vmin , Vmin ), max (vmax , Vmax )
2167
- self .stale = True
2168
-
2169
2172
def set_default_intervals (self ):
2170
2173
# docstring inherited
2171
2174
xmin , xmax = 0. , 1.
@@ -2460,40 +2463,14 @@ def get_ticks_position(self):
2460
2463
"default" : "default" , "unknown" : "unknown" }[
2461
2464
self ._get_ticks_position ()]
2462
2465
2463
- def get_view_interval (self ):
2464
- # docstring inherited
2465
- return self .axes .viewLim .intervaly
2466
-
2467
- def set_view_interval (self , vmin , vmax , ignore = False ):
2468
- # docstring inherited
2469
- if ignore :
2470
- self .axes .viewLim .intervaly = vmin , vmax
2471
- else :
2472
- Vmin , Vmax = self .get_view_interval ()
2473
- if Vmin < Vmax :
2474
- self .axes .viewLim .intervaly = (min (vmin , vmax , Vmin ),
2475
- max (vmin , vmax , Vmax ))
2476
- else :
2477
- self .axes .viewLim .intervaly = (max (vmin , vmax , Vmin ),
2478
- min (vmin , vmax , Vmax ))
2479
- self .stale = True
2466
+ get_view_interval , set_view_interval = _make_getset_interval (
2467
+ "view" , "viewLim" , "intervaly" )
2468
+ get_data_interval , set_data_interval = _make_getset_interval (
2469
+ "data" , "dataLim" , "intervaly" )
2480
2470
2481
2471
def get_minpos (self ):
2482
2472
return self .axes .dataLim .minposy
2483
2473
2484
- def get_data_interval (self ):
2485
- # docstring inherited
2486
- return self .axes .dataLim .intervaly
2487
-
2488
- def set_data_interval (self , vmin , vmax , ignore = False ):
2489
- # docstring inherited
2490
- if ignore :
2491
- self .axes .dataLim .intervaly = vmin , vmax
2492
- else :
2493
- Vmin , Vmax = self .get_data_interval ()
2494
- self .axes .dataLim .intervaly = min (vmin , Vmin ), max (vmax , Vmax )
2495
- self .stale = True
2496
-
2497
2474
def set_default_intervals (self ):
2498
2475
# docstring inherited
2499
2476
ymin , ymax = 0. , 1.
0 commit comments