Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e6a115c

Browse files
committed
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.
1 parent 1ef7c13 commit e6a115c

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

lib/matplotlib/axes/_axes.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4876,7 +4876,9 @@ def get_interp_point(ind):
48764876
diff_order = diff_values.argsort()
48774877
diff_root_x = np.interp(
48784878
0, diff_values[diff_order], x_values[diff_order])
4879-
diff_root_y = np.interp(diff_root_x, x_values, y1_values)
4879+
x_order = x_values.argsort()
4880+
diff_root_y = np.interp(diff_root_x, x_values[x_order],
4881+
y1_values[x_order])
48804882
return diff_root_x, diff_root_y
48814883

48824884
start = get_interp_point(ind0)
@@ -5026,7 +5028,9 @@ def get_interp_point(ind):
50265028
diff_order = diff_values.argsort()
50275029
diff_root_y = np.interp(
50285030
0, diff_values[diff_order], y_values[diff_order])
5029-
diff_root_x = np.interp(diff_root_y, y_values, x1_values)
5031+
y_order = y_values.argsort()
5032+
diff_root_x = np.interp(diff_root_y, y_values[y_order],
5033+
x1_values[y_order])
50305034
return diff_root_x, diff_root_y
50315035

50325036
start = get_interp_point(ind0)

0 commit comments

Comments
 (0)