diff --git a/.flake8 b/.flake8 index 0884c4406392..3974ac55ea19 100644 --- a/.flake8 +++ b/.flake8 @@ -61,8 +61,7 @@ per-file-ignores = matplotlib/type1font.py: E731 mpl_toolkits/__init__.py: E261 - mpl_toolkits/axes_grid/axes_divider.py: E501 - mpl_toolkits/axes_grid/axes_rgb.py: E302, E501 + mpl_toolkits/axes_grid/axes_rgb.py: E501 mpl_toolkits/axes_grid1/axes_divider.py: E402, E501 mpl_toolkits/axes_grid1/axes_grid.py: E225 mpl_toolkits/axes_grid1/axes_rgb.py: E231 diff --git a/doc/api/next_api_changes/2018-02-09-ES.rst b/doc/api/next_api_changes/2018-02-09-ES.rst new file mode 100644 index 000000000000..c4c7ccd40da4 --- /dev/null +++ b/doc/api/next_api_changes/2018-02-09-ES.rst @@ -0,0 +1,19 @@ +Deprecation of ``LocatableAxes`` in toolkits +-------------------------------------------- + +The ``LocatableAxes`` classes in toolkits have been deprecated. The base `Axes` +classes provide the same functionality to all subclasses, thus these mixins are +no longer necessary. Related functions have also been deprecated. Specifically: + +* ``mpl_toolkits.axes_grid1.axes_divider.LocatableAxesBase``: no specific + replacement; use any other ``Axes``-derived class directly instead. +* ``mpl_toolkits.axes_grid1.axes_divider.locatable_axes_factory``: no specific + replacement; use any other ``Axes``-derived class directly instead. +* ``mpl_toolkits.axes_grid1.axes_divider.Axes``: use + `mpl_toolkits.axes_grid1.mpl_axes.Axes` directly. +* ``mpl_toolkits.axes_grid1.axes_divider.LocatableAxes``: use + `mpl_toolkits.axes_grid1.mpl_axes.Axes` directly. +* ``mpl_toolkits.axisartist.axes_divider.Axes``: use + `mpl_toolkits.axisartist.axislines.Axes` directly. +* ``mpl_toolkits.axisartist.axes_divider.LocatableAxes``: use + `mpl_toolkits.axisartist.axislines.Axes` directly. diff --git a/lib/mpl_toolkits/axes_grid/ChangeLog b/lib/mpl_toolkits/axes_grid/ChangeLog deleted file mode 100644 index 79cc01cfdf40..000000000000 --- a/lib/mpl_toolkits/axes_grid/ChangeLog +++ /dev/null @@ -1,13 +0,0 @@ -2009-06-01 Jae-Joon Lee - - * axislines.py (Axes.toggle_axisline): fix broken spine support. - (AxisArtistHelper): Initial support for curvelinear grid and ticks. - -2009-05-04 Jae-Joon Lee - - * inset_locator.py (inset_axes, zoomed_inset_axes): axes_class support - - * axislines.py : Better support for tick (tick label) color - handling - (Axes.get_children): fix typo - diff --git a/lib/mpl_toolkits/axes_grid/axes_divider.py b/lib/mpl_toolkits/axes_grid/axes_divider.py index 134902bdcb9e..87760bbb0dc4 100644 --- a/lib/mpl_toolkits/axes_grid/axes_divider.py +++ b/lib/mpl_toolkits/axes_grid/axes_divider.py @@ -1,5 +1,5 @@ -from mpl_toolkits.axes_grid1.axes_divider import Divider, AxesLocator, SubplotDivider, \ - AxesDivider, locatable_axes_factory, make_axes_locatable - -from mpl_toolkits.axes_grid.axislines import Axes -LocatableAxes = locatable_axes_factory(Axes) +from mpl_toolkits.axes_grid1.axes_divider import ( + AxesDivider, AxesLocator, Divider, SubplotDivider, locatable_axes_factory, + make_axes_locatable) +from mpl_toolkits.axisartist.axes_divider import LocatableAxes +from mpl_toolkits.axisartist.axislines import Axes diff --git a/lib/mpl_toolkits/axes_grid/axes_grid.py b/lib/mpl_toolkits/axes_grid/axes_grid.py index 49a77a1fb2e9..db7507bb8254 100644 --- a/lib/mpl_toolkits/axes_grid/axes_grid.py +++ b/lib/mpl_toolkits/axes_grid/axes_grid.py @@ -1,26 +1,3 @@ -import mpl_toolkits.axes_grid1.axes_grid as axes_grid_orig -from .axes_divider import LocatableAxes - - -class CbarAxes(axes_grid_orig.CbarAxesBase, LocatableAxes): - def __init__(self, *args, orientation, **kwargs): - self.orientation = orientation - self._default_label_on = False - self.locator = None - super().__init__(*args, **kwargs) - - def cla(self): - super().cla() - self._config_axes() - - -class Grid(axes_grid_orig.Grid): - _defaultLocatableAxesClass = LocatableAxes - - -class ImageGrid(axes_grid_orig.ImageGrid): - _defaultLocatableAxesClass = LocatableAxes - _defaultCbarAxesClass = CbarAxes - - -AxesGrid = ImageGrid +from mpl_toolkits.axisartist.axes_divider import LocatableAxes +from mpl_toolkits.axisartist.axes_grid import ( + AxesGrid, CbarAxes, Grid, ImageGrid) diff --git a/lib/mpl_toolkits/axes_grid/axes_rgb.py b/lib/mpl_toolkits/axes_grid/axes_rgb.py index 4112b0c82bae..8ec680ec9db7 100644 --- a/lib/mpl_toolkits/axes_grid/axes_rgb.py +++ b/lib/mpl_toolkits/axes_grid/axes_rgb.py @@ -2,7 +2,8 @@ from mpl_toolkits.axes_grid1.axes_rgb import make_rgb_axes, imshow_rgb, RGBAxesBase #import mpl_toolkits.axes_grid1.axes_rgb as axes_rgb_orig -from .axislines import Axes +from mpl_toolkits.axisartist.axislines import Axes + class RGBAxes(RGBAxesBase): _defaultAxesClass = Axes diff --git a/lib/mpl_toolkits/axes_grid/parasite_axes.py b/lib/mpl_toolkits/axes_grid/parasite_axes.py index 91fcd1f21de1..50d36677dd3a 100644 --- a/lib/mpl_toolkits/axes_grid/parasite_axes.py +++ b/lib/mpl_toolkits/axes_grid/parasite_axes.py @@ -1,8 +1,7 @@ from mpl_toolkits.axes_grid1.parasite_axes import ( host_axes_class_factory, parasite_axes_class_factory, parasite_axes_auxtrans_class_factory, subplot_class_factory) - -from .axislines import Axes +from mpl_toolkits.axisartist.axislines import Axes ParasiteAxes = parasite_axes_class_factory(Axes) diff --git a/lib/mpl_toolkits/axes_grid1/axes_divider.py b/lib/mpl_toolkits/axes_grid1/axes_divider.py index 80c157e61188..48d0f792672a 100644 --- a/lib/mpl_toolkits/axes_grid1/axes_divider.py +++ b/lib/mpl_toolkits/axes_grid1/axes_divider.py @@ -13,6 +13,7 @@ import functools import matplotlib.transforms as mtransforms +from matplotlib import cbook from matplotlib.axes import SubplotBase from . import axes_size as Size @@ -863,62 +864,23 @@ def locate(self, nx, ny, nx1=None, ny1=None, axes=None, renderer=None): return mtransforms.Bbox.from_bounds(x1, y1, w1, h1) +@cbook.deprecated('3.0', + addendum=' There is no alternative. Deriving from ' + 'matplotlib.axes.Axes provides this functionality ' + 'already.') class LocatableAxesBase(object): - def __init__(self, *kl, **kw): + pass - self._axes_class.__init__(self, *kl, **kw) - self._locator = None - self._locator_renderer = None - - def set_axes_locator(self, locator): - self._locator = locator - - def get_axes_locator(self): - return self._locator - - def apply_aspect(self, position=None): - - if self.get_axes_locator() is None: - self._axes_class.apply_aspect(self, position) - else: - pos = self.get_axes_locator()(self, self._locator_renderer) - self._axes_class.apply_aspect(self, position=pos) - - def draw(self, renderer=None, inframe=False): - - self._locator_renderer = renderer - - self._axes_class.draw(self, renderer, inframe) - - def _make_twin_axes(self, *kl, **kwargs): - """ - Need to overload so that twinx/twiny will work with - these axes. - """ - if 'sharex' in kwargs and 'sharey' in kwargs: - raise ValueError("Twinned Axes may share only one axis.") - ax2 = type(self)(self.figure, self.get_position(True), *kl, **kwargs) - ax2.set_axes_locator(self.get_axes_locator()) - self.figure.add_axes(ax2) - self.set_adjustable('datalim') - ax2.set_adjustable('datalim') - self._twinned_axes.join(self, ax2) - return ax2 - - -@functools.lru_cache(None) +@cbook.deprecated('3.0', + addendum=' There is no alternative. Classes derived from ' + 'matplotlib.axes.Axes provide this functionality ' + 'already.') def locatable_axes_factory(axes_class): - return type("Locatable%s" % axes_class.__name__, - (LocatableAxesBase, axes_class), - {'_axes_class': axes_class}) + return axes_class def make_axes_locatable(axes): - if not hasattr(axes, "set_axes_locator"): - new_class = locatable_axes_factory(type(axes)) - axes.__class__ = new_class - divider = AxesDivider(axes) locator = divider.new_locator(nx=0, ny=0) axes.set_axes_locator(locator) @@ -939,6 +901,17 @@ def make_axes_area_auto_adjustable(ax, divider.add_auto_adjustable_area(use_axes=use_axes, pad=pad, adjust_dirs=adjust_dirs) -#from matplotlib.axes import Axes -from .mpl_axes import Axes -LocatableAxes = locatable_axes_factory(Axes) + +from .mpl_axes import Axes as _Axes + + +@cbook.deprecated('3.0', + alternative='mpl_toolkits.axes_grid1.mpl_axes.Axes') +class Axes(_Axes): + pass + + +@cbook.deprecated('3.0', + alternative='mpl_toolkits.axes_grid1.mpl_axes.Axes') +class LocatableAxes(_Axes): + pass diff --git a/lib/mpl_toolkits/axes_grid1/axes_grid.py b/lib/mpl_toolkits/axes_grid1/axes_grid.py index 5a7f9057f16e..773ef257f66e 100644 --- a/lib/mpl_toolkits/axes_grid1/axes_grid.py +++ b/lib/mpl_toolkits/axes_grid1/axes_grid.py @@ -4,8 +4,9 @@ import matplotlib.ticker as ticker from matplotlib.gridspec import SubplotSpec -from .axes_divider import Size, SubplotDivider, LocatableAxes, Divider +from .axes_divider import Size, SubplotDivider, Divider from .colorbar import Colorbar +from .mpl_axes import Axes def _extend_axes_pad(value): @@ -100,7 +101,7 @@ def toggle_label(self, b): #axis.label.set_visible(b) -class CbarAxes(CbarAxesBase, LocatableAxes): +class CbarAxes(CbarAxesBase, Axes): def __init__(self, *args, orientation, **kwargs): self.orientation = orientation self._default_label_on = True @@ -122,7 +123,7 @@ class Grid(object): be easily done in matplotlib. AxesGrid is used in such case. """ - _defaultLocatableAxesClass = LocatableAxes + _defaultAxesClass = Axes def __init__(self, fig, rect, @@ -182,12 +183,12 @@ def __init__(self, fig, self._direction = direction if axes_class is None: - axes_class = self._defaultLocatableAxesClass + axes_class = self._defaultAxesClass axes_class_args = {} else: if (isinstance(axes_class, type) and issubclass(axes_class, - self._defaultLocatableAxesClass.Axes)): + self._defaultAxesClass.Axes)): axes_class_args = {} else: axes_class, axes_class_args = axes_class @@ -503,7 +504,7 @@ def __init__(self, fig, self._direction = direction if axes_class is None: - axes_class = self._defaultLocatableAxesClass + axes_class = self._defaultAxesClass axes_class_args = {} else: if isinstance(axes_class, maxes.Axes): diff --git a/lib/mpl_toolkits/axes_grid1/axes_rgb.py b/lib/mpl_toolkits/axes_grid1/axes_rgb.py index 909a73ec8c4e..258acd48f1c5 100644 --- a/lib/mpl_toolkits/axes_grid1/axes_rgb.py +++ b/lib/mpl_toolkits/axes_grid1/axes_rgb.py @@ -1,5 +1,6 @@ import numpy as np -from .axes_divider import make_axes_locatable, Size, locatable_axes_factory + +from .axes_divider import make_axes_locatable, Size from .mpl_axes import Axes @@ -23,9 +24,9 @@ def make_rgb_axes(ax, pad=0.01, axes_class=None, add_all=True): ax_rgb = [] if axes_class is None: try: - axes_class = locatable_axes_factory(ax._axes_class) + axes_class = ax._axes_class except AttributeError: - axes_class = locatable_axes_factory(type(ax)) + axes_class = type(ax) for ny in [4, 2, 0]: ax1 = axes_class(ax.get_figure(), diff --git a/lib/mpl_toolkits/axisartist/axes_divider.py b/lib/mpl_toolkits/axisartist/axes_divider.py index abc6556336fc..9287adb8b7f7 100644 --- a/lib/mpl_toolkits/axisartist/axes_divider.py +++ b/lib/mpl_toolkits/axisartist/axes_divider.py @@ -1,6 +1,19 @@ +from matplotlib import cbook + from mpl_toolkits.axes_grid1.axes_divider import ( Divider, AxesLocator, SubplotDivider, AxesDivider, locatable_axes_factory, make_axes_locatable) -from mpl_toolkits.axes_grid.axislines import Axes -LocatableAxes = locatable_axes_factory(Axes) +from mpl_toolkits.axisartist.axislines import Axes as _Axes + + +@cbook.deprecated('3.0', + alternative='mpl_toolkits.axisartist.axislines.Axes') +class Axes(_Axes): + pass + + +@cbook.deprecated('3.0', + alternative='mpl_toolkits.axisartist.axislines.Axes') +class LocatableAxes(_Axes): + pass diff --git a/lib/mpl_toolkits/axisartist/axes_grid.py b/lib/mpl_toolkits/axisartist/axes_grid.py index 49a77a1fb2e9..fe3bd43ce7d8 100644 --- a/lib/mpl_toolkits/axisartist/axes_grid.py +++ b/lib/mpl_toolkits/axisartist/axes_grid.py @@ -1,8 +1,8 @@ import mpl_toolkits.axes_grid1.axes_grid as axes_grid_orig -from .axes_divider import LocatableAxes +from .axislines import Axes -class CbarAxes(axes_grid_orig.CbarAxesBase, LocatableAxes): +class CbarAxes(axes_grid_orig.CbarAxesBase, Axes): def __init__(self, *args, orientation, **kwargs): self.orientation = orientation self._default_label_on = False @@ -15,11 +15,11 @@ def cla(self): class Grid(axes_grid_orig.Grid): - _defaultLocatableAxesClass = LocatableAxes + _defaultAxesClass = Axes class ImageGrid(axes_grid_orig.ImageGrid): - _defaultLocatableAxesClass = LocatableAxes + _defaultAxesClass = Axes _defaultCbarAxesClass = CbarAxes pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy