From e1e1a32c0502cbb47674925d8ee4053cc065de59 Mon Sep 17 00:00:00 2001 From: Alec Vercruysse Date: Wed, 7 Feb 2024 12:01:34 -0800 Subject: [PATCH 1/5] fix quiver3d incorrect arrow colors --- lib/mpl_toolkits/mplot3d/axes3d.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index 4d8c7e6b8e84..b5ece8709d15 100644 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -2986,14 +2986,6 @@ def calc_arrows(UVW): # Normalize rows of UVW norm = np.linalg.norm(UVW, axis=1) - # If any row of UVW is all zeros, don't make a quiver for it - mask = norm > 0 - XYZ = XYZ[mask] - if normalize: - UVW = UVW[mask] / norm[mask].reshape((-1, 1)) - else: - UVW = UVW[mask] - if len(XYZ) > 0: # compute the shaft lines all at once with an outer product shafts = (XYZ - np.multiply.outer(shaft_dt, UVW)).swapaxes(0, 1) @@ -3006,7 +2998,7 @@ def calc_arrows(UVW): # transpose to get a list of lines heads = heads.swapaxes(0, 1) - lines = [*shafts, *heads] + lines = [*shafts, *heads[::2], *heads[1::2]] else: lines = [] From c3d60d37139d767f540ab47d8c201f3eebb15816 Mon Sep 17 00:00:00 2001 From: Alec Vercruysse Date: Wed, 7 Feb 2024 13:09:06 -0800 Subject: [PATCH 2/5] revert quiver3d normalization --- lib/mpl_toolkits/mplot3d/axes3d.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index b5ece8709d15..403c29260beb 100644 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -2986,6 +2986,10 @@ def calc_arrows(UVW): # Normalize rows of UVW norm = np.linalg.norm(UVW, axis=1) + # If any row of UVW is all zeros, don't make a quiver for it + if normalize: + UVW = UVW / norm.reshape((-1, 1)) + if len(XYZ) > 0: # compute the shaft lines all at once with an outer product shafts = (XYZ - np.multiply.outer(shaft_dt, UVW)).swapaxes(0, 1) From f8732779cda6064f5f3ebaa27fd33b3623c83361 Mon Sep 17 00:00:00 2001 From: Alec Vercruysse Date: Wed, 7 Feb 2024 16:07:44 -0800 Subject: [PATCH 3/5] quiver: avoid divide by zero when normalizing - (avoid unnecessary computation otherwise) --- lib/mpl_toolkits/mplot3d/axes3d.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index 403c29260beb..74348d17730d 100644 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -2984,10 +2984,9 @@ def calc_arrows(UVW): UVW = np.column_stack(input_args[3:]).astype(float) # Normalize rows of UVW - norm = np.linalg.norm(UVW, axis=1) - - # If any row of UVW is all zeros, don't make a quiver for it if normalize: + norm = np.linalg.norm(UVW, axis=1) + norm[norm == 0] = 1 UVW = UVW / norm.reshape((-1, 1)) if len(XYZ) > 0: From c0b24428b246529a0bff5ca50783ee3f02e16d1c Mon Sep 17 00:00:00 2001 From: Alec Vercruysse Date: Wed, 7 Feb 2024 16:13:11 -0800 Subject: [PATCH 4/5] Add tol to quiver3d & errorbar3d_errorevery image comparison test --- lib/mpl_toolkits/mplot3d/tests/test_axes3d.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py index 1c6bbdd91670..752636e45ddd 100644 --- a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py +++ b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py @@ -836,7 +836,8 @@ def test_mixedsamplesraises(): ax.plot_surface(X, Y, Z, cstride=50, rcount=10) -@mpl3d_image_comparison(['quiver3d.png'], style='mpl20') +# remove tolerance when regenerating the test image +@mpl3d_image_comparison(['quiver3d.png'], style='mpl20', tol=0.003) def test_quiver3d(): plt.rcParams['axes3d.automargin'] = True # Remove when image is regenerated fig = plt.figure() @@ -1555,7 +1556,8 @@ def test_minor_ticks(): ax.set_zticklabels(["half"], minor=True) -@mpl3d_image_comparison(['errorbar3d_errorevery.png'], style='mpl20') +# remove tolerance when regenerating the test image +@mpl3d_image_comparison(['errorbar3d_errorevery.png'], style='mpl20', tol=0.003) def test_errorbar3d_errorevery(): """Tests errorevery functionality for 3D errorbars.""" t = np.arange(0, 2*np.pi+.1, 0.01) From 0d5f82259a3f974e8e45822381d3faddb114d3cb Mon Sep 17 00:00:00 2001 From: Alec Vercruysse Date: Fri, 1 Mar 2024 12:56:03 -0800 Subject: [PATCH 5/5] add test for color coded quiver3d --- .../test_axes3d/quiver3d_colorcoded.png | Bin 0 -> 55531 bytes lib/mpl_toolkits/mplot3d/tests/test_axes3d.py | 13 +++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 lib/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/quiver3d_colorcoded.png diff --git a/lib/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/quiver3d_colorcoded.png b/lib/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/quiver3d_colorcoded.png new file mode 100644 index 0000000000000000000000000000000000000000..09b27c306c61417bd78658f98dfbd12ac7bfd7be GIT binary patch literal 55531 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ⅈ|w6{@-^+?4&gIE#=)O5eoQYCNHQR$M2QF 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 aQVD;$-Kf9x(3J^)?b)?o{}Ijh;{O7)cy1E_ literal 0 HcmV?d00001 diff --git a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py index 752636e45ddd..2b7bfc117f88 100644 --- a/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py +++ b/lib/mpl_toolkits/mplot3d/tests/test_axes3d.py @@ -885,6 +885,19 @@ def test_quiver3d_masked(): ax.quiver(x, y, z, u, v, w, length=0.1, pivot='tip', normalize=True) +@mpl3d_image_comparison(['quiver3d_colorcoded.png'], style='mpl20') +def test_quiver3d_colorcoded(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + + x = y = dx = dz = np.zeros(10) + z = dy = np.arange(10.) + + color = plt.cm.Reds(dy/dy.max()) + ax.quiver(x, y, z, dx, dy, dz, colors=color) + ax.set_ylim(0, 10) + + def test_patch_modification(): fig = plt.figure() ax = fig.add_subplot(projection="3d")