From 8e15b7060b4a2a9c11bca06f5e594f3ded2d5e67 Mon Sep 17 00:00:00 2001 From: zhoubecky Date: Mon, 5 Mar 2018 13:34:00 -0500 Subject: [PATCH 1/2] fix BboxConnectorPatch does not show facecolor #8059 and add test --- lib/mpl_toolkits/axes_grid1/inset_locator.py | 13 ++- .../test_axes_grid1/fill_facecolor.png | Bin 0 -> 14845 bytes lib/mpl_toolkits/tests/test_axes_grid1.py | 90 +++++++++++++++++- 3 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 lib/mpl_toolkits/tests/baseline_images/test_axes_grid1/fill_facecolor.png diff --git a/lib/mpl_toolkits/axes_grid1/inset_locator.py b/lib/mpl_toolkits/axes_grid1/inset_locator.py index 30483fba06ff..c7bbdd6b185e 100644 --- a/lib/mpl_toolkits/axes_grid1/inset_locator.py +++ b/lib/mpl_toolkits/axes_grid1/inset_locator.py @@ -308,7 +308,11 @@ def __init__(self, bbox1, bbox2, loc1, loc2=None, **kwargs): raise ValueError("transform should not be set") kwargs["transform"] = IdentityTransform() - Patch.__init__(self, fill=False, **kwargs) + if 'fill' in kwargs: + Patch.__init__(self, **kwargs) + else: + fill = ('fc' in kwargs) or ('facecolor' in kwargs) or ('color' in kwargs) + Patch.__init__(self, fill=fill, **kwargs) self.bbox1 = bbox1 self.bbox2 = bbox2 self.loc1 = loc1 @@ -581,8 +585,11 @@ def mark_inset(parent_axes, inset_axes, loc1, loc2, **kwargs): """ rect = TransformedBbox(inset_axes.viewLim, parent_axes.transData) - fill = kwargs.pop("fill", False) - pp = BboxPatch(rect, fill=fill, **kwargs) + if 'fill' in kwargs: + pp = BboxPatch(rect, **kwargs) + else: + fill = ('fc' in kwargs) or ('facecolor' in kwargs) or ('color' in kwargs) + pp = BboxPatch(rect, fill=fill, **kwargs) parent_axes.add_patch(pp) p1 = BboxConnector(inset_axes.bbox, rect, loc1=loc1, **kwargs) diff --git a/lib/mpl_toolkits/tests/baseline_images/test_axes_grid1/fill_facecolor.png b/lib/mpl_toolkits/tests/baseline_images/test_axes_grid1/fill_facecolor.png new file mode 100644 index 0000000000000000000000000000000000000000..4391e179be9f61a149a9190e72e2a0f7b7047f02 GIT binary patch literal 14845 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 K#un(=NBkdPSZT)q literal 0 HcmV?d00001 diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py index 740eb37889bd..7049902974a6 100644 --- a/lib/mpl_toolkits/tests/test_axes_grid1.py +++ b/lib/mpl_toolkits/tests/test_axes_grid1.py @@ -12,11 +12,14 @@ from mpl_toolkits.axes_grid1.inset_locator import ( zoomed_inset_axes, mark_inset, - inset_axes + inset_axes, + BboxConnectorPatch ) from mpl_toolkits.axes_grid1.anchored_artists import AnchoredSizeBar from matplotlib.colors import LogNorm +from matplotlib.transforms import Bbox, TransformedBbox, \ + blended_transform_factory from itertools import product import numpy as np @@ -226,6 +229,91 @@ def test_inset_axes_without_transform_should_use_parent_axes(): assert ax.transAxes == ax_ins.transAxes +@image_comparison( + baseline_images=['fill_facecolor'], extensions=['png'], + remove_text=True, style='mpl20') +def test_fill_facecolor(): + fig, ax = plt.subplots(1, 5) + fig.set_size_inches(5, 5) + trans1 = blended_transform_factory(ax[0].transData, ax[0].transData) + trans2 = blended_transform_factory(ax[1].transData, ax[1].transData) + trans3 = blended_transform_factory(ax[2].transData, ax[2].transData) + trans4 = blended_transform_factory(ax[3].transData, ax[3].transData) + trans5 = blended_transform_factory(ax[4].transData, ax[4].transData) + for i in range(1, 4): + ax[i].yaxis.set_visible(False) + ax[4].yaxis.tick_right() + bbox = Bbox.from_extents(0, 0.4, 1, 0.6) + + # fill with blue by setting 'fc' field + bbox1 = TransformedBbox(bbox, trans1) + bbox2 = TransformedBbox(bbox, trans2) + # set color to BboxConnectorPatch + p = BboxConnectorPatch( + bbox1, bbox2, loc1a=1, loc2a=2, loc1b=4, loc2b=3, + ec="r", fc="b") + p.set_clip_on(False) + ax[0].add_patch(p) + # set color to marked area + axins = zoomed_inset_axes(ax[0], 1, loc=1) + axins.set_xlim(0, 0.2) + axins.set_ylim(0, 0.2) + plt.gca().axes.get_xaxis().set_ticks([]) + plt.gca().axes.get_yaxis().set_ticks([]) + mark_inset(ax[0], axins, loc1=2, loc2=4, fc="b", ec="0.5") + + # fill with yellow by setting 'facecolor' field + bbox3 = TransformedBbox(bbox, trans2) + bbox4 = TransformedBbox(bbox, trans3) + # set color to BboxConnectorPatch + p = BboxConnectorPatch( + bbox3, bbox4, loc1a=1, loc2a=2, loc1b=4, loc2b=3, + ec="r", facecolor="y") + p.set_clip_on(False) + ax[1].add_patch(p) + # set color to marked area + axins = zoomed_inset_axes(ax[1], 1, loc=1) + axins.set_xlim(0, 0.2) + axins.set_ylim(0, 0.2) + plt.gca().axes.get_xaxis().set_ticks([]) + plt.gca().axes.get_yaxis().set_ticks([]) + mark_inset(ax[1], axins, loc1=2, loc2=4, facecolor="y", ec="0.5") + + # fill with green by setting 'color' field + bbox5 = TransformedBbox(bbox, trans3) + bbox6 = TransformedBbox(bbox, trans4) + # set color to BboxConnectorPatch + p = BboxConnectorPatch( + bbox5, bbox6, loc1a=1, loc2a=2, loc1b=4, loc2b=3, + ec="r", color="g") + p.set_clip_on(False) + ax[2].add_patch(p) + # set color to marked area + axins = zoomed_inset_axes(ax[2], 1, loc=1) + axins.set_xlim(0, 0.2) + axins.set_ylim(0, 0.2) + plt.gca().axes.get_xaxis().set_ticks([]) + plt.gca().axes.get_yaxis().set_ticks([]) + mark_inset(ax[2], axins, loc1=2, loc2=4, color="g", ec="0.5") + + # fill with green but color won't show if set fill to False + bbox7 = TransformedBbox(bbox, trans4) + bbox8 = TransformedBbox(bbox, trans5) + # BboxConnectorPatch won't show green + p = BboxConnectorPatch( + bbox7, bbox8, loc1a=1, loc2a=2, loc1b=4, loc2b=3, + ec="r", fc="g", fill=False) + p.set_clip_on(False) + ax[3].add_patch(p) + # marked area won't show green + axins = zoomed_inset_axes(ax[3], 1, loc=1) + axins.set_xlim(0, 0.2) + axins.set_ylim(0, 0.2) + plt.gca().axes.get_xaxis().set_ticks([]) + plt.gca().axes.get_yaxis().set_ticks([]) + mark_inset(ax[3], axins, loc1=2, loc2=4, fc="g", ec="0.5", fill=False) + + @image_comparison(baseline_images=['zoomed_axes', 'inverted_zoomed_axes'], extensions=['png']) From c7aba6bb17e9ffc8c89be2660a40446f6ebce4d0 Mon Sep 17 00:00:00 2001 From: zhoubecky Date: Sun, 18 Mar 2018 20:19:57 -0400 Subject: [PATCH 2/2] update test --- lib/mpl_toolkits/tests/test_axes_grid1.py | 25 +++++++++-------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py index 7049902974a6..e5eef506461c 100644 --- a/lib/mpl_toolkits/tests/test_axes_grid1.py +++ b/lib/mpl_toolkits/tests/test_axes_grid1.py @@ -235,19 +235,14 @@ def test_inset_axes_without_transform_should_use_parent_axes(): def test_fill_facecolor(): fig, ax = plt.subplots(1, 5) fig.set_size_inches(5, 5) - trans1 = blended_transform_factory(ax[0].transData, ax[0].transData) - trans2 = blended_transform_factory(ax[1].transData, ax[1].transData) - trans3 = blended_transform_factory(ax[2].transData, ax[2].transData) - trans4 = blended_transform_factory(ax[3].transData, ax[3].transData) - trans5 = blended_transform_factory(ax[4].transData, ax[4].transData) for i in range(1, 4): ax[i].yaxis.set_visible(False) ax[4].yaxis.tick_right() bbox = Bbox.from_extents(0, 0.4, 1, 0.6) # fill with blue by setting 'fc' field - bbox1 = TransformedBbox(bbox, trans1) - bbox2 = TransformedBbox(bbox, trans2) + bbox1 = TransformedBbox(bbox, ax[0].transData) + bbox2 = TransformedBbox(bbox, ax[1].transData) # set color to BboxConnectorPatch p = BboxConnectorPatch( bbox1, bbox2, loc1a=1, loc2a=2, loc1b=4, loc2b=3, @@ -263,8 +258,8 @@ def test_fill_facecolor(): mark_inset(ax[0], axins, loc1=2, loc2=4, fc="b", ec="0.5") # fill with yellow by setting 'facecolor' field - bbox3 = TransformedBbox(bbox, trans2) - bbox4 = TransformedBbox(bbox, trans3) + bbox3 = TransformedBbox(bbox, ax[1].transData) + bbox4 = TransformedBbox(bbox, ax[2].transData) # set color to BboxConnectorPatch p = BboxConnectorPatch( bbox3, bbox4, loc1a=1, loc2a=2, loc1b=4, loc2b=3, @@ -280,8 +275,8 @@ def test_fill_facecolor(): mark_inset(ax[1], axins, loc1=2, loc2=4, facecolor="y", ec="0.5") # fill with green by setting 'color' field - bbox5 = TransformedBbox(bbox, trans3) - bbox6 = TransformedBbox(bbox, trans4) + bbox5 = TransformedBbox(bbox, ax[2].transData) + bbox6 = TransformedBbox(bbox, ax[3].transData) # set color to BboxConnectorPatch p = BboxConnectorPatch( bbox5, bbox6, loc1a=1, loc2a=2, loc1b=4, loc2b=3, @@ -297,8 +292,8 @@ def test_fill_facecolor(): mark_inset(ax[2], axins, loc1=2, loc2=4, color="g", ec="0.5") # fill with green but color won't show if set fill to False - bbox7 = TransformedBbox(bbox, trans4) - bbox8 = TransformedBbox(bbox, trans5) + bbox7 = TransformedBbox(bbox, ax[3].transData) + bbox8 = TransformedBbox(bbox, ax[4].transData) # BboxConnectorPatch won't show green p = BboxConnectorPatch( bbox7, bbox8, loc1a=1, loc2a=2, loc1b=4, loc2b=3, @@ -309,8 +304,8 @@ def test_fill_facecolor(): axins = zoomed_inset_axes(ax[3], 1, loc=1) axins.set_xlim(0, 0.2) axins.set_ylim(0, 0.2) - plt.gca().axes.get_xaxis().set_ticks([]) - plt.gca().axes.get_yaxis().set_ticks([]) + axins.get_xaxis().set_ticks([]) + axins.get_yaxis().set_ticks([]) mark_inset(ax[3], axins, loc1=2, loc2=4, fc="g", ec="0.5", fill=False)