我正在尝试创建一个区域图,其中填充根据 y 值发生变化。使用 fill_between
和 where
参数大多有效,但会留下未填充的区域:
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(1,10)
y=np.array([1,4,6,8,4,7,5,6,0])
plt.plot(x, y, color='black')
plt.fill_between(x, y, where=y < 5, color='red')
plt.fill_between(x, y, where=y >= 5, color='blue')
plt.show()
产生这个结果:Plot without interpolation
如何去除图表下方的任何白色区域?对于当前的“中间”区域应该如何着色,我没有严格的要求。要么 - 要么两者,在中点会面 - 都可以。
添加 interpolate=True
在某些方面稍微改善了情况,但在其他方面看起来更混乱:Plot with interpolation
我已经查看了 step
参数,但在我看来似乎不太乐观。