From e6a115c936e47e21b4de9b1374cfc296fdb240a2 Mon Sep 17 00:00:00 2001 From: Ryan May Date: Tue, 26 Sep 2017 13:46:41 -0600 Subject: [PATCH 1/2] BUG: Fix fill_between(x) with decreasing data (Fixes #9235) One of the calls to interp passes data which is not guaranteed to be in increasing order, which interp requires. Just use argsort the data, like is done above. --- lib/matplotlib/axes/_axes.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 48126b6be55e..688f70504233 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -4876,7 +4876,9 @@ def get_interp_point(ind): diff_order = diff_values.argsort() diff_root_x = np.interp( 0, diff_values[diff_order], x_values[diff_order]) - diff_root_y = np.interp(diff_root_x, x_values, y1_values) + x_order = x_values.argsort() + diff_root_y = np.interp(diff_root_x, x_values[x_order], + y1_values[x_order]) return diff_root_x, diff_root_y start = get_interp_point(ind0) @@ -5026,7 +5028,9 @@ def get_interp_point(ind): diff_order = diff_values.argsort() diff_root_y = np.interp( 0, diff_values[diff_order], y_values[diff_order]) - diff_root_x = np.interp(diff_root_y, y_values, x1_values) + y_order = y_values.argsort() + diff_root_x = np.interp(diff_root_y, y_values[y_order], + x1_values[y_order]) return diff_root_x, diff_root_y start = get_interp_point(ind0) From 61f4fa319ea60e8c460fd502eca3cbc1bfb09cb4 Mon Sep 17 00:00:00 2001 From: Ryan May Date: Tue, 26 Sep 2017 14:02:47 -0600 Subject: [PATCH 2/2] Add test for #9235 --- .../fill_between_interpolate_decreasing.pdf | Bin 0 -> 1596 bytes .../fill_between_interpolate_decreasing.png | Bin 0 -> 15053 bytes .../fill_between_interpolate_decreasing.svg | 212 ++++++++++++++++++ lib/matplotlib/tests/test_axes.py | 22 ++ 4 files changed, 234 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.png create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.svg diff --git a/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.pdf b/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4042ec1c9fba83b0ed51d5321d4bbdc0158e048f GIT binary patch literal 1596 zcmY!laB$t4Qr zV8ap4F*E=Qz&zlXmzQ5s4738M-x=tX)I1>15@LXRQGRKG0?3=r!3z2=sb!hTsX^{Q ztAV_bqQt!7g2bZKyyQxl&mro87U}z@rer2MBOQJTBUa-${JK0s{h(}D@VTD z;n1LW?9*fQPMMd5Q@$_RlYF?^rv8U?{qY~oQ_U;NQWo@y)E=wQc>K~*A?|p*i+$$S zV^{dk+z1Hs(=tmAJmL3d4c}(2lO10t%((u4y6wFk`n<=IR?Xk!Gx7fRKS$Q@iMl=O z(1JDJW$V7}4SVvo;lwT-J(q14J9fQL@`^mhx8z2=v30hJ=-jm{9NnG=uC$7Nw&KT| z^OFVK&rX+~`sw}8Z2bjGFKO#vV2IUx;<3upsO;Oh&W%g&q#mj6%xd>opR={>>zAxJ z<;oqes%mzBeD%Rx&2xG6V(CjSR7=CIHmp7W$a-DYfpZT_t$DsvYQiw4qbY;Q&LJM>D7i+Y_tz z)=z9XU2;D;{!Bc)`u5xR)1SXR{H$%h{km-r7Tp#5xAgdbUGe+#_j5&Vd0lw(^67mu zwIwHA?XxUBmD+TAp5^Y>A6FT>|2xm0ntFHJ>8anpaQ<~yt_I~RXbeMh7&zuZNyNn5 z5SHsec?z0p5NRKj>0n98(GZfh9f4xdyo<=4`pJn3hM=UR?`Q;5W{6#xfu0FOp)mo4 zAoD;fp^gUSatsH8@-BuTCEKJUyFP-X^a@gPv1hLlN=VhUlk zA(CcM94MHXni`ubq$$9~41rDr0fju6n4zIL&@ZTB29~D4+=wn_ z4zw3l%+L_z7IZOVVC12TnF8YuRm{M^4AWj?3rsO117Pujrq|LK!+nNEK%c_Zl@ujr z=A;&Zi+Rtyw0s3{paILMp!|GLScA)};LNI2V1R*QwYVg)s018@hDN65T&k+B{%%|V DR&N^@ literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.png b/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.png new file mode 100644 index 0000000000000000000000000000000000000000..c8bd0f845ca09a66cf8e8e777b13542a49a887f4 GIT binary patch literal 15053 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 N9J4r@cjR37zW}I`mumn3 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.svg b/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.svg new file mode 100644 index 000000000000..857e8c92f833 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_axes/fill_between_interpolate_decreasing.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 7d9b5d8639f0..0c22740a4f09 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -968,6 +968,28 @@ def test_fill_between_interpolate(): interpolate=True) +@image_comparison(baseline_images=['fill_between_interpolate_decreasing'], + style='mpl20', remove_text=True) +def test_fill_between_interpolate_decreasing(): + p = np.array([724.3, 700, 655]) + t = np.array([9.4, 7, 2.2]) + prof = np.array([7.9, 6.6, 3.8]) + + fig = plt.figure(figsize=(9, 9)) + ax = fig.add_subplot(1, 1, 1) + + ax.plot(t, p, 'tab:red') + ax.plot(prof, p, 'k') + + ax.fill_betweenx(p, t, prof, where=prof < t, + facecolor='blue', interpolate=True, alpha=0.4) + ax.fill_betweenx(p, t, prof, where=prof > t, + facecolor='red', interpolate=True, alpha=0.4) + + ax.set_xlim(0, 30) + ax.set_ylim(800, 600) + + @image_comparison(baseline_images=['symlog']) def test_symlog(): x = np.array([0, 1, 2, 4, 6, 9, 12, 24])