From cfef7cb75cec3c38fae12c4020c260c700194d78 Mon Sep 17 00:00:00 2001 From: "depano.carlos@gmail.com" Date: Fri, 17 Mar 2017 12:33:51 -0400 Subject: [PATCH 1/3] Added clip_path kwarg, get_clip_path(), set_clip_path() to ContourSet, and tests --- lib/matplotlib/contour.py | 28 ++++++++ .../test_contour/contour_clip_path_arrow.png | Bin 0 -> 13965 bytes .../test_contour/contour_clip_path_circle.png | Bin 0 -> 24103 bytes .../test_contour/contour_clip_path_none.png | Bin 0 -> 12435 bytes .../contour_clip_path_polygon.png | Bin 0 -> 19862 bytes lib/matplotlib/tests/test_contour.py | 65 ++++++++++++++++++ 6 files changed, 93 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_arrow.png create mode 100644 lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_circle.png create mode 100644 lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_none.png create mode 100644 lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_polygon.png diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py index 3264c67ad2e8..239cfececc90 100644 --- a/lib/matplotlib/contour.py +++ b/lib/matplotlib/contour.py @@ -808,6 +808,7 @@ def __init__(self, ax, *args, **kwargs): self.hatches = kwargs.get('hatches', [None]) self.alpha = kwargs.get('alpha', None) + self.clip_path = kwargs.get('clip_path', None) self.origin = kwargs.get('origin', None) self.extent = kwargs.get('extent', None) cmap = kwargs.get('cmap', None) @@ -957,6 +958,7 @@ def __init__(self, ax, *args, **kwargs): col.sticky_edges.y[:] = [self._mins[1], self._maxs[1]] self.ax.update_datalim([self._mins, self._maxs]) self.ax.autoscale_view(tight=True) + self.set_clip_path(self.clip_path) self.changed() # set the colors @@ -1322,6 +1324,26 @@ def set_alpha(self, alpha): self.alpha = alpha self.changed() + def get_clip_path(self): + """Returns clip_path to be applied to all ContourSet artists.""" + return self.clip_path + + def set_clip_path(self, path, transform=None): + """ + Sets clip_path for all ContourSet artists. + + Optional keyword arguments: + + *transform*: + A :class:`~matplotlib.transforms.Transform` instance + which will be applied to the path before using it for + clipping. May be provided if *path* is a + :class:`~matplotlib.path.Path` instance. + + """ + for col in self.collections: + col.set_clip_path(path, transform) + def find_nearest_contour(self, x, y, indices=None, pixel=True): """ Finds contour that is closest to a point. Defaults to @@ -1783,6 +1805,12 @@ def _initialize_x_y(self, z): however introduce rendering artifacts at chunk boundaries depending on the backend, the *antialiased* flag and value of *alpha*. + *clip_path*: [ *None* | Patch | Path ] + A :class:`~matplotlib.patches.Patch` (or subclass), or + :class:`~matplotlib.path.Path` instance for setting a clip_path + for the ContourSet. If *clip_path* is *None* then the clipping + path is removed. + contour-only keyword arguments: *linewidths*: [ *None* | number | tuple of numbers ] diff --git a/lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_arrow.png b/lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..7d5b6e56991f1dda184fe5b95a8ec82df3687b94 GIT binary patch literal 13965 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 P7dx-4sg!%>>b?I1aI^Xg literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_circle.png b/lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe0c0dc8b7dcfd4576397f753decbf58e4001fd GIT binary patch literal 24103 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_none.png b/lib/matplotlib/tests/baseline_images/test_contour/contour_clip_path_none.png new file mode 100644 index 0000000000000000000000000000000000000000..9b069ff422059d38b4cc6bbde48eab19147aa7c9 GIT binary patch literal 12435 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�T zJA6>C7NVo0)6gzxotv|@Z1S;t7hi8|Y>coA%ZZuLv0v$Ylg!I-;zT6jhgAYt%Rpj$ zSzD9+M!C+#+rG54^sX9*;2u31Pp@zQFX*;TXSNV|yN zfMoQp-d=JrDN@t5AA<(m{QbMIy`3HL0p{J@+yuZRbj#?OMP^!N<~@+%SB~~KTwPr; z3JQ@w({plie6?h*2G^LHn%-}D(KVZqnmXF#vH^O@4*mjMb~&E3w48xC*MI(uc=F`Q ziqt)e2KSS|EirH`iIb&s^WAaC1!omyzZ?5IzE?ta==u5iK|U|y@pqS&++hKogM))o z924`O`};MF#gm6Vf4&cO+LbmP?8&@3X>2a?we;UYn!8A-X=u)hi!;KK`aXV)F|Se% z2)MNUV>+&~QmCk;F^8LKMy}i%DuK%-;L>SK=uxSc9x|o(08Mp(r z9^)b-V`KABFW(D4(!(!P!1&<7gB?JVedan*ii(PJU@8Uetu~5!PKv`ZXH8Q+W{6`F zmbbEEo1C0{7k2dsQhL_k3f9!Jo*yH2lof}d2j4L378DjT& zqyTOV7%t2#EU%#U@5{mhm(2WY&JF(9%~<6^2KXbwA!tK^)E$64oq9RN+@K)(1h8yR z#~I|+n>T8$P$?i^Gv1$|!ZQc(H-kW``^c@=KwuC!m;muI5RJU{4h|{@)=cNEg}i23 z`DK8S;YWBVB_$j6){^`BRDUklbi7UAQ8F+XPM=jVG)w`Jn!@HOKYx<`#L&nH30QUw z=2xAk&oRVHNJ&vt8OMPkEp_>_T$ORx?{ za%^&v3hb7h-QBkd3Os$b7v>;%J%GoqZ)`+nWo3cDr=g=$C>+E*8GboFKEASca#!am z4o;1M;emY+OYGl2#x5dxpuD2uJv$V^gyQ7v{_j4fn7>_AMTO9RyA&}q(f{qDPkoGn qFbo5KG-=fT4nrW$|Ip^0ED~gBLC5@z^c%Qkh?O?f(Ofh;y_6 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py index cc90aa2510b0..f84d5cd9b6c1 100644 --- a/lib/matplotlib/tests/test_contour.py +++ b/lib/matplotlib/tests/test_contour.py @@ -7,6 +7,7 @@ from matplotlib import mlab from matplotlib.testing.decorators import image_comparison from matplotlib import pyplot as plt +import matplotlib.patches as mpatches from numpy.testing import assert_array_almost_equal import pytest import warnings @@ -340,3 +341,67 @@ def test_internal_cpp_api(): with pytest.raises(ValueError) as excinfo: qcg.create_filled_contour(1, 0) excinfo.match(r'filled contour levels must be increasing') + + +@image_comparison(baseline_images=['contour_clip_path_arrow', + 'contour_clip_path_circle', + 'contour_clip_path_polygon', + 'contour_clip_path_none'], + extensions=['png']) +def test_contourf_clip_path_kwarg(): + # GitHub Issue 2369 + data = np.arange(100).reshape(10, 10) + + fig = plt.figure() + ax = fig.add_subplot(111) + arrow = mpatches.Arrow(0, 0.5, 0.5, 0, + transform=ax.transAxes) + plt.contourf(data, clip_path=arrow) + + fig = plt.figure() + ax = fig.add_subplot(111) + circle = mpatches.Circle([0.5, 0.5], 0.5, + transform=ax.transAxes) + plt.contourf(data, clip_path=circle) + + fig = plt.figure() + ax = fig.add_subplot(111) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) + plt.contourf(data, clip_path=polygon) + + fig = plt.figure() + ax = fig.add_subplot(111) + plt.contourf(data, clip_path=None) + + +@image_comparison(baseline_images=['contour_clip_path_arrow', + 'contour_clip_path_circle', + 'contour_clip_path_polygon', + 'contour_clip_path_none'], + extensions=['png']) +def test_contourf_set_clip_path(): + # GitHub Issue 2369 + data = np.arange(100).reshape(10, 10) + + fig = plt.figure() + ax = fig.add_subplot(111) + arrow = mpatches.Arrow(0, 0.5, 0.5, 0, + transform=ax.transAxes) + plt.contourf(data).set_clip_path(arrow) + + fig = plt.figure() + ax = fig.add_subplot(111) + circle = mpatches.Circle([0.5, 0.5], 0.5, + transform=ax.transAxes) + plt.contourf(data).set_clip_path(circle) + + fig = plt.figure() + ax = fig.add_subplot(111) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) + plt.contourf(data).set_clip_path(polygon) + + fig = plt.figure() + ax = fig.add_subplot(111) + plt.contourf(data).set_clip_path(None) From 72dfadc9ce303c8d0508ce4e175d44148c6b0b7e Mon Sep 17 00:00:00 2001 From: "depano.carlos@gmail.com" Date: Fri, 17 Mar 2017 16:11:13 -0400 Subject: [PATCH 2/3] Updated set_clip_path(), added more test cases for issue #2369 --- lib/matplotlib/contour.py | 1 + lib/matplotlib/tests/test_contour.py | 60 ++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py index 239cfececc90..e0ceee254363 100644 --- a/lib/matplotlib/contour.py +++ b/lib/matplotlib/contour.py @@ -1341,6 +1341,7 @@ def set_clip_path(self, path, transform=None): :class:`~matplotlib.path.Path` instance. """ + self.clip_path = path for col in self.collections: col.set_clip_path(path, transform) diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py index f84d5cd9b6c1..0d8b24f2e89d 100644 --- a/lib/matplotlib/tests/test_contour.py +++ b/lib/matplotlib/tests/test_contour.py @@ -405,3 +405,63 @@ def test_contourf_set_clip_path(): fig = plt.figure() ax = fig.add_subplot(111) plt.contourf(data).set_clip_path(None) + + +@cleanup +def test_contourf_get_clip_path(): + # Issue 2369 + data = np.arange(100).reshape(10, 10) + fig = plt.figure() + ax = fig.add_subplot(111) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) + cs = plt.contourf(data) + cs.set_clip_path(polygon) + # Get clip_path of the ContourSet + get_polygon = cs.get_clip_path() + # Getter should return the same clip_path + assert polygon == get_polygon + + +@image_comparison(baseline_images=['contour_clip_path_polygon'], + extensions=['png']) +def test_contourf_reset_clip_path_none_to_shape(): + # Issue 2369 + data = np.arange(100).reshape(10, 10) + fig = plt.figure() + ax = fig.add_subplot(111) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) + cs = plt.contourf(data) + cs.set_clip_path(None) + cs.set_clip_path(polygon) + + +@image_comparison(baseline_images=['contour_clip_path_none'], + extensions=['png']) +def test_contourf_reset_clip_path_shape_to_none(): + # Issue 2369 + data = np.arange(100).reshape(10, 10) + fig = plt.figure() + ax = fig.add_subplot(111) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) + cs = plt.contourf(data) + cs.set_clip_path(polygon) + cs.set_clip_path(None) + + +@image_comparison(baseline_images=['contour_clip_path_arrow'], + extensions=['png']) +def test_contourf_reset_clip_path_shape_to_shape(): + # Issue 2369 + data = np.arange(100).reshape(10, 10) + fig = plt.figure() + ax = fig.add_subplot(111) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) + arrow = mpatches.Arrow(0, 0.5, 0.5, 0, + transform=ax.transAxes) + cs = plt.contourf(data) + cs.set_clip_path(polygon) + cs.set_clip_path(arrow) From 4c5177742726835e4fd33c575835d9e0b07acfe3 Mon Sep 17 00:00:00 2001 From: "depano.carlos@gmail.com" Date: Fri, 17 Mar 2017 17:22:02 -0400 Subject: [PATCH 3/3] Fixed pep8 for test_contour.py --- lib/matplotlib/tests/test_contour.py | 39 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py index 0d8b24f2e89d..faae6aabbcc6 100644 --- a/lib/matplotlib/tests/test_contour.py +++ b/lib/matplotlib/tests/test_contour.py @@ -354,20 +354,20 @@ def test_contourf_clip_path_kwarg(): fig = plt.figure() ax = fig.add_subplot(111) - arrow = mpatches.Arrow(0, 0.5, 0.5, 0, - transform=ax.transAxes) + arrow = mpatches.Arrow(0, 0.5, 0.5, 0, + transform=ax.transAxes) plt.contourf(data, clip_path=arrow) fig = plt.figure() ax = fig.add_subplot(111) - circle = mpatches.Circle([0.5, 0.5], 0.5, - transform=ax.transAxes) + circle = mpatches.Circle([0.5, 0.5], 0.5, + transform=ax.transAxes) plt.contourf(data, clip_path=circle) fig = plt.figure() ax = fig.add_subplot(111) - polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, - transform=ax.transAxes) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) plt.contourf(data, clip_path=polygon) fig = plt.figure() @@ -386,20 +386,20 @@ def test_contourf_set_clip_path(): fig = plt.figure() ax = fig.add_subplot(111) - arrow = mpatches.Arrow(0, 0.5, 0.5, 0, - transform=ax.transAxes) + arrow = mpatches.Arrow(0, 0.5, 0.5, 0, + transform=ax.transAxes) plt.contourf(data).set_clip_path(arrow) fig = plt.figure() ax = fig.add_subplot(111) - circle = mpatches.Circle([0.5, 0.5], 0.5, - transform=ax.transAxes) + circle = mpatches.Circle([0.5, 0.5], 0.5, + transform=ax.transAxes) plt.contourf(data).set_clip_path(circle) fig = plt.figure() ax = fig.add_subplot(111) - polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, - transform=ax.transAxes) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) plt.contourf(data).set_clip_path(polygon) fig = plt.figure() @@ -407,14 +407,13 @@ def test_contourf_set_clip_path(): plt.contourf(data).set_clip_path(None) -@cleanup def test_contourf_get_clip_path(): # Issue 2369 data = np.arange(100).reshape(10, 10) fig = plt.figure() ax = fig.add_subplot(111) polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, - transform=ax.transAxes) + transform=ax.transAxes) cs = plt.contourf(data) cs.set_clip_path(polygon) # Get clip_path of the ContourSet @@ -430,8 +429,8 @@ def test_contourf_reset_clip_path_none_to_shape(): data = np.arange(100).reshape(10, 10) fig = plt.figure() ax = fig.add_subplot(111) - polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, - transform=ax.transAxes) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) cs = plt.contourf(data) cs.set_clip_path(None) cs.set_clip_path(polygon) @@ -444,8 +443,8 @@ def test_contourf_reset_clip_path_shape_to_none(): data = np.arange(100).reshape(10, 10) fig = plt.figure() ax = fig.add_subplot(111) - polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, - transform=ax.transAxes) + polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, + transform=ax.transAxes) cs = plt.contourf(data) cs.set_clip_path(polygon) cs.set_clip_path(None) @@ -459,9 +458,9 @@ def test_contourf_reset_clip_path_shape_to_shape(): fig = plt.figure() ax = fig.add_subplot(111) polygon = mpatches.RegularPolygon([0.5, 0.5], 5, 0.5, - transform=ax.transAxes) + transform=ax.transAxes) arrow = mpatches.Arrow(0, 0.5, 0.5, 0, - transform=ax.transAxes) + transform=ax.transAxes) cs = plt.contourf(data) cs.set_clip_path(polygon) cs.set_clip_path(arrow)