From 543bb402c4a90f192330d7f81f9cccba2cac703f Mon Sep 17 00:00:00 2001 From: AlexCav Date: Sun, 11 Mar 2018 12:48:06 -0700 Subject: [PATCH 1/2] Bugfix for issue #8120 - inconsistent inset_axes position --- lib/mpl_toolkits/axes_grid1/inset_locator.py | 16 ++-- .../test_axes_grid1/inset_axes.png | Bin 0 -> 9928 bytes lib/mpl_toolkits/tests/test_axes_grid1.py | 69 +++++++++++++++++- 3 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 lib/mpl_toolkits/tests/baseline_images/test_axes_grid1/inset_axes.png diff --git a/lib/mpl_toolkits/axes_grid1/inset_locator.py b/lib/mpl_toolkits/axes_grid1/inset_locator.py index 08e80ee03817..d1f96432d46b 100644 --- a/lib/mpl_toolkits/axes_grid1/inset_locator.py +++ b/lib/mpl_toolkits/axes_grid1/inset_locator.py @@ -90,7 +90,6 @@ def __call__(self, ax, renderer): class AnchoredSizeLocator(AnchoredLocatorBase): def __init__(self, bbox_to_anchor, x_size, y_size, loc, borderpad=0.5, bbox_transform=None): - super().__init__( bbox_to_anchor, None, loc, borderpad=borderpad, bbox_transform=bbox_transform @@ -105,16 +104,16 @@ def get_extent(self, renderer): dpi = renderer.points_to_pixels(72.) r, a = self.x_size.get_size(renderer) - width = w*r + a*dpi + width = w * r + a * dpi r, a = self.y_size.get_size(renderer) - height = h*r + a*dpi + height = h * r + a * dpi xd, yd = 0, 0 fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) pad = self.pad * fontsize - return width+2*pad, height+2*pad, xd+pad, yd+pad + return width + 2 * pad, height + 2 * pad, xd + pad, yd + pad class AnchoredZoomLocator(AnchoredLocatorBase): @@ -122,7 +121,6 @@ def __init__(self, parent_axes, zoom, loc, borderpad=0.5, bbox_to_anchor=None, bbox_transform=None): - self.parent_axes = parent_axes self.zoom = zoom @@ -141,7 +139,7 @@ def get_extent(self, renderer): fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) pad = self.pad * fontsize - return abs(w*self.zoom)+2*pad, abs(h*self.zoom)+2*pad, pad, pad + return abs(w * self.zoom) + 2 * pad, abs(h * self.zoom) + 2 * pad, pad, pad class BboxPatch(Patch): @@ -184,6 +182,7 @@ def get_path(self): Path.CLOSEPOLY] return Path(verts, codes) + get_path.__doc__ = Patch.get_path.__doc__ @@ -318,6 +317,7 @@ def __init__(self, bbox1, bbox2, loc1, loc2=None, **kwargs): def get_path(self): return self.connect_bbox(self.bbox1, self.bbox2, self.loc1, self.loc2) + get_path.__doc__ = Patch.get_path.__doc__ @@ -373,6 +373,7 @@ def get_path(self): list(path2.vertices) + [path1.vertices[0]]) return Path(path_merged) + get_path.__doc__ = BboxConnector.get_path.__doc__ @@ -453,6 +454,9 @@ def inset_axes(parent_axes, width, height, loc=1, if bbox_to_anchor is None: bbox_to_anchor = parent_axes.bbox + if bbox_transform is None: + bbox_transform = parent_axes.transAxes + axes_locator = AnchoredSizeLocator(bbox_to_anchor, width, height, loc=loc, diff --git a/lib/mpl_toolkits/tests/baseline_images/test_axes_grid1/inset_axes.png b/lib/mpl_toolkits/tests/baseline_images/test_axes_grid1/inset_axes.png new file mode 100644 index 0000000000000000000000000000000000000000..90498f5d441beff8e0d04b4f0f650801bf5f756f GIT binary patch literal 9928 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 fTu%D?m;%X<%Uh+fSq8VSAR4!|Z Date: Mon, 12 Mar 2018 15:32:37 -0700 Subject: [PATCH 2/2] Fixed pep8 failures in test_axes_grid1.py --- lib/mpl_toolkits/tests/test_axes_grid1.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py index 412b210501d1..740eb37889bd 100644 --- a/lib/mpl_toolkits/tests/test_axes_grid1.py +++ b/lib/mpl_toolkits/tests/test_axes_grid1.py @@ -9,7 +9,11 @@ from mpl_toolkits.axes_grid1 import host_subplot from mpl_toolkits.axes_grid1 import make_axes_locatable from mpl_toolkits.axes_grid1 import AxesGrid -from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes, mark_inset, inset_axes +from mpl_toolkits.axes_grid1.inset_locator import ( + zoomed_inset_axes, + mark_inset, + inset_axes +) from mpl_toolkits.axes_grid1.anchored_artists import AnchoredSizeBar from matplotlib.colors import LogNorm @@ -180,7 +184,7 @@ def get_demo_image(): origin="lower") # creating our inset axes without a bbox_transform parameter - axins = inset_axes(ax, width=1., height=1., bbox_to_anchor=(1,1)) + axins = inset_axes(ax, width=1., height=1., bbox_to_anchor=(1, 1)) axins.imshow(Z2, extent=extent, interpolation="nearest", origin="lower") @@ -209,7 +213,7 @@ def get_demo_image(): def test_inset_axes_without_transform_should_use_parent_axes(): # creating our figure - fig = plt.figure(dpi=150); + fig = plt.figure(dpi=150) # gca method gets current axes of the figure ax = plt.gca() 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