From eee91122d956c258b74f76559f72b1514f30d52c Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 24 Mar 2017 01:10:29 -0400 Subject: [PATCH 1/6] Remove old ChangeLog from axes_grid. --- lib/mpl_toolkits/axes_grid/ChangeLog | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 lib/mpl_toolkits/axes_grid/ChangeLog 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 - From ff6139c84bbba5b9cb6ed035b94f1390364fca3d Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 24 Mar 2017 03:15:50 -0400 Subject: [PATCH 2/6] Remove cross-references to axes_grid. This is provided for backwards-compatibility, so point directly to the implementations instead of the compatibility location. --- .flake8 | 3 +-- lib/mpl_toolkits/axes_grid/axes_divider.py | 10 +++---- lib/mpl_toolkits/axes_grid/axes_grid.py | 29 +++------------------ lib/mpl_toolkits/axes_grid/axes_rgb.py | 3 ++- lib/mpl_toolkits/axes_grid/parasite_axes.py | 3 +-- lib/mpl_toolkits/axisartist/axes_divider.py | 2 +- 6 files changed, 13 insertions(+), 37 deletions(-) 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/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/axisartist/axes_divider.py b/lib/mpl_toolkits/axisartist/axes_divider.py index abc6556336fc..c1c18aae843f 100644 --- a/lib/mpl_toolkits/axisartist/axes_divider.py +++ b/lib/mpl_toolkits/axisartist/axes_divider.py @@ -2,5 +2,5 @@ Divider, AxesLocator, SubplotDivider, AxesDivider, locatable_axes_factory, make_axes_locatable) -from mpl_toolkits.axes_grid.axislines import Axes +from mpl_toolkits.axisartist.axislines import Axes LocatableAxes = locatable_axes_factory(Axes) From 15d9b8eecf2d39f185c3338d23dcacca6abf6c2c Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 24 Mar 2017 23:23:06 -0400 Subject: [PATCH 3/6] Deprecate LocatableAxesBase and make it a no-op. All its functionality is provided by the matplotlib.axes.Axes class now so it does not need to exist as all alternative Axes classes derive from the main one. --- lib/mpl_toolkits/axes_grid1/axes_divider.py | 49 +++------------------ 1 file changed, 7 insertions(+), 42 deletions(-) diff --git a/lib/mpl_toolkits/axes_grid1/axes_divider.py b/lib/mpl_toolkits/axes_grid1/axes_divider.py index 80c157e61188..dc3e502a5c1f 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,54 +864,18 @@ 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): - - 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 + pass @functools.lru_cache(None) def locatable_axes_factory(axes_class): return type("Locatable%s" % axes_class.__name__, - (LocatableAxesBase, axes_class), + (axes_class, ), {'_axes_class': axes_class}) From 947ebe9750314d186e02aaaf7c76c42fd8c6cebf Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Mon, 5 Feb 2018 21:46:47 -0500 Subject: [PATCH 4/6] Deprecate locatable_axes_factory and make it a no-op. It's similar to LocatableAxesBase and provided in base Axes classes. --- lib/mpl_toolkits/axes_grid1/axes_divider.py | 15 ++++++--------- lib/mpl_toolkits/axes_grid1/axes_rgb.py | 7 ++++--- lib/mpl_toolkits/axisartist/axes_divider.py | 2 +- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/mpl_toolkits/axes_grid1/axes_divider.py b/lib/mpl_toolkits/axes_grid1/axes_divider.py index dc3e502a5c1f..f1a1dba5c70f 100644 --- a/lib/mpl_toolkits/axes_grid1/axes_divider.py +++ b/lib/mpl_toolkits/axes_grid1/axes_divider.py @@ -872,18 +872,15 @@ class LocatableAxesBase(object): pass -@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__, - (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) @@ -906,4 +903,4 @@ def make_axes_area_auto_adjustable(ax, #from matplotlib.axes import Axes from .mpl_axes import Axes -LocatableAxes = locatable_axes_factory(Axes) +LocatableAxes = 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 c1c18aae843f..e712e3ea5560 100644 --- a/lib/mpl_toolkits/axisartist/axes_divider.py +++ b/lib/mpl_toolkits/axisartist/axes_divider.py @@ -3,4 +3,4 @@ make_axes_locatable) from mpl_toolkits.axisartist.axislines import Axes -LocatableAxes = locatable_axes_factory(Axes) +LocatableAxes = Axes From e041adcb4a3e65e87799386048e5dc3b45df132a Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Mon, 5 Feb 2018 22:51:18 -0500 Subject: [PATCH 5/6] Deprecate any LocatableAxes in toolkits. It's now no longer used for anything, since maxes.Axes is locatable already. --- lib/mpl_toolkits/axes_grid1/axes_divider.py | 17 ++++++++++++++--- lib/mpl_toolkits/axes_grid1/axes_grid.py | 13 +++++++------ lib/mpl_toolkits/axisartist/axes_divider.py | 17 +++++++++++++++-- lib/mpl_toolkits/axisartist/axes_grid.py | 8 ++++---- 4 files changed, 40 insertions(+), 15 deletions(-) diff --git a/lib/mpl_toolkits/axes_grid1/axes_divider.py b/lib/mpl_toolkits/axes_grid1/axes_divider.py index f1a1dba5c70f..48d0f792672a 100644 --- a/lib/mpl_toolkits/axes_grid1/axes_divider.py +++ b/lib/mpl_toolkits/axes_grid1/axes_divider.py @@ -901,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 = 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/axisartist/axes_divider.py b/lib/mpl_toolkits/axisartist/axes_divider.py index e712e3ea5560..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.axisartist.axislines import Axes -LocatableAxes = 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 From 7421b0e3944e8f52bac764c3f8484112725384b2 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 9 Feb 2018 00:42:44 -0500 Subject: [PATCH 6/6] DOC: Add deprecation changelog for LocatableAxes stuff. --- doc/api/next_api_changes/2018-02-09-ES.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 doc/api/next_api_changes/2018-02-09-ES.rst 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. 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