From 47825e9241196e2b89b032428a1838c0cbdf5940 Mon Sep 17 00:00:00 2001 From: neok-m4700 Date: Fri, 26 May 2017 18:51:59 +0200 Subject: [PATCH] fixing quiver logic added 2 simple tests --- lib/matplotlib/quiver.py | 12 +++++------ .../baseline_images/test_quiver/quiver_xy.png | Bin 0 -> 11027 bytes lib/matplotlib/tests/test_quiver.py | 20 ++++++++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_quiver/quiver_xy.png diff --git a/lib/matplotlib/quiver.py b/lib/matplotlib/quiver.py index aed77ee72b78..1f320f22ca0e 100644 --- a/lib/matplotlib/quiver.py +++ b/lib/matplotlib/quiver.py @@ -626,19 +626,19 @@ def _angles_lengths(self, U, V, eps=1): def _make_verts(self, U, V, angles): uv = (U + V * 1j) - str_angles = isinstance(angles, six.string_types) - if str_angles and (angles == 'xy' and self.scale_units == 'xy'): + str_angles = angles if isinstance(angles, six.string_types) else '' + if str_angles == 'xy' and self.scale_units == 'xy': # Here eps is 1 so that if we get U, V by diffing # the X, Y arrays, the vectors will connect the # points, regardless of the axis scaling (including log). angles, lengths = self._angles_lengths(U, V, eps=1) - elif str_angles and (angles == 'xy' or self.scale_units == 'xy'): + elif str_angles == 'xy' or self.scale_units == 'xy': # Calculate eps based on the extents of the plot # so that we don't end up with roundoff error from # adding a small number to a large. eps = np.abs(self.ax.dataLim.extents).max() * 0.001 angles, lengths = self._angles_lengths(U, V, eps=eps) - if self.scale_units == 'xy': + if str_angles and self.scale_units == 'xy': a = lengths else: a = np.abs(uv) @@ -665,9 +665,9 @@ def _make_verts(self, U, V, angles): self.scale = scale * widthu_per_lenu length = a * (widthu_per_lenu / (self.scale * self.width)) X, Y = self._h_arrows(length) - if str_angles and (angles == 'xy'): + if str_angles == 'xy': theta = angles - elif str_angles and (angles == 'uv'): + elif str_angles == 'uv': theta = np.angle(uv) else: theta = ma.masked_invalid(np.deg2rad(angles)).filled(0) diff --git a/lib/matplotlib/tests/baseline_images/test_quiver/quiver_xy.png b/lib/matplotlib/tests/baseline_images/test_quiver/quiver_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..2889014c89174fd3b2494b9f3fcfb3e937945aef GIT binary patch literal 11027 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