Skip to content

Commit 9d9bdab

Browse files
committed
Deprecate {Locator,Formatter}.set_{{view,data}_interval,bounds}.
Directly manipulating the underlying axis' view and data intervals is clearer (see e.g. the changes in dates.py which ultimately just deletes code that sets `self.axis`'s view and data intervals to themselves).
1 parent 8dd2838 commit 9d9bdab

File tree

7 files changed

+24
-20
lines changed

7 files changed

+24
-20
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Locator and Formatter wrapper methods
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
The ``set_view_interval``, ``set_data_interval`` and ``set_bounds`` methods of
4+
`.Locator`\s and `.Formatter`\s (and their common base class, TickHelper) are
5+
deprecated. Directly manipulate the view and data intervals on the underlying
6+
axis instead.

lib/matplotlib/collections.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1128,7 +1128,8 @@ def legend_elements(self, prop="colors", num="auto",
11281128
raise ValueError("Valid values for `prop` are 'colors' or "
11291129
f"'sizes'. You supplied '{prop}' instead.")
11301130

1131-
fmt.set_bounds(func(u).min(), func(u).max())
1131+
fmt.axis.set_view_interval(func(u).min(), func(u).max())
1132+
fmt.axis.set_data_interval(func(u).min(), func(u).max())
11321133
if num == "auto":
11331134
num = 9
11341135
if len(u) <= num:

lib/matplotlib/colorbar.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -869,11 +869,9 @@ def _ticker(self, locator, formatter):
869869
else:
870870
intv = self.vmin, self.vmax
871871
locator.create_dummy_axis(minpos=intv[0])
872-
formatter.create_dummy_axis(minpos=intv[0])
873-
locator.set_view_interval(*intv)
874-
locator.set_data_interval(*intv)
875-
formatter.set_view_interval(*intv)
876-
formatter.set_data_interval(*intv)
872+
locator.axis.set_view_interval(*intv)
873+
locator.axis.set_data_interval(*intv)
874+
formatter.set_axis(locator.axis)
877875

878876
b = np.array(locator())
879877
if isinstance(locator, ticker.LogLocator):

lib/matplotlib/dates.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -1480,10 +1480,6 @@ def get_locator(self, dmin, dmax):
14801480
'epoch.')
14811481

14821482
locator.set_axis(self.axis)
1483-
1484-
if self.axis is not None:
1485-
locator.set_view_interval(*self.axis.get_view_interval())
1486-
locator.set_data_interval(*self.axis.get_data_interval())
14871483
return locator
14881484

14891485

@@ -1727,10 +1723,12 @@ def set_axis(self, axis):
17271723
self._wrapped_locator.set_axis(axis)
17281724
return super().set_axis(axis)
17291725

1726+
@cbook.deprecated("3.3", alternative=".axis.set_view_interval")
17301727
def set_view_interval(self, vmin, vmax):
17311728
self._wrapped_locator.set_view_interval(vmin, vmax)
17321729
return super().set_view_interval(vmin, vmax)
17331730

1731+
@cbook.deprecated("3.3", alternative=".axis.set_data_interval")
17341732
def set_data_interval(self, vmin, vmax):
17351733
self._wrapped_locator.set_data_interval(vmin, vmax)
17361734
return super().set_data_interval(vmin, vmax)

lib/matplotlib/tests/test_dates.py

+5-8
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,7 @@ def test_auto_date_locator():
319319
def _create_auto_date_locator(date1, date2):
320320
locator = mdates.AutoDateLocator(interval_multiples=False)
321321
locator.create_dummy_axis()
322-
locator.set_view_interval(mdates.date2num(date1),
323-
mdates.date2num(date2))
322+
locator.axis.set_view_interval(*mdates.date2num([date1, date2]))
324323
return locator
325324

326325
d1 = datetime.datetime(1990, 1, 1)
@@ -391,8 +390,7 @@ def test_auto_date_locator_intmult():
391390
def _create_auto_date_locator(date1, date2):
392391
locator = mdates.AutoDateLocator(interval_multiples=True)
393392
locator.create_dummy_axis()
394-
locator.set_view_interval(mdates.date2num(date1),
395-
mdates.date2num(date2))
393+
locator.axis.set_view_interval(*mdates.date2num([date1, date2]))
396394
return locator
397395

398396
results = ([datetime.timedelta(weeks=52 * 200),
@@ -732,8 +730,7 @@ def test_auto_date_locator_intmult_tz():
732730
def _create_auto_date_locator(date1, date2, tz):
733731
locator = mdates.AutoDateLocator(interval_multiples=True, tz=tz)
734732
locator.create_dummy_axis()
735-
locator.set_view_interval(mdates.date2num(date1),
736-
mdates.date2num(date2))
733+
locator.axis.set_view_interval(*mdates.date2num([date1, date2]))
737734
return locator
738735

739736
results = ([datetime.timedelta(weeks=52*200),
@@ -951,8 +948,8 @@ def test_yearlocator_pytz():
951948
+ datetime.timedelta(i) for i in range(2000)]
952949
locator = mdates.AutoDateLocator(interval_multiples=True, tz=tz)
953950
locator.create_dummy_axis()
954-
locator.set_view_interval(mdates.date2num(x[0])-1.0,
955-
mdates.date2num(x[-1])+1.0)
951+
locator.axis.set_view_interval(mdates.date2num(x[0])-1.0,
952+
mdates.date2num(x[-1])+1.0)
956953
t = np.array([733408.208333, 733773.208333, 734138.208333,
957954
734503.208333, 734869.208333, 735234.208333, 735599.208333])
958955
# convert to new epoch from old...

lib/matplotlib/ticker.py

+5
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,17 @@ def create_dummy_axis(self, **kwargs):
231231
if self.axis is None:
232232
self.axis = _DummyAxis(**kwargs)
233233

234+
@cbook.deprecated("3.5", alternative=".axis.set_view_interval")
234235
def set_view_interval(self, vmin, vmax):
235236
self.axis.set_view_interval(vmin, vmax)
236237

238+
@cbook.deprecated("3.5", alternative=".axis.set_data_interval")
237239
def set_data_interval(self, vmin, vmax):
238240
self.axis.set_data_interval(vmin, vmax)
239241

242+
@cbook.deprecated(
243+
"3.5",
244+
alternative=".axis.set_view_interval and .axis.set_data_interval")
240245
def set_bounds(self, vmin, vmax):
241246
self.set_view_interval(vmin, vmax)
242247
self.set_data_interval(vmin, vmax)

lib/mpl_toolkits/axisartist/grid_finder.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,7 @@ def __init__(self, nbins=10, steps=None,
222222
self._factor = 1
223223

224224
def __call__(self, v1, v2):
225-
self.set_bounds(v1 * self._factor, v2 * self._factor)
226-
locs = super().__call__()
225+
locs = super().tick_values(v1 * self._factor, v2 * self._factor)
227226
return np.array(locs), len(locs), self._factor
228227

229228
@_api.deprecated("3.3")

0 commit comments

Comments
 (0)