您提供的代码段应按以下方式更正:
plt.plot(x, y, marker='.', lw=1)
d = scipy.zeros(len(y))
ax.fill_between(xs, ys, where=ys>=d, interpolate=True, color='blue')
ax.fill_between(xs, ys, where=ys<=d, interpolate=True, color='red')
该fill_between
方法至少使用两个参数x
和y1
,同时还具有一个y2
默认值为0的参数。该方法将填充指定- values之间y1
和之间的区域。y2``x
为什么你没有得到的x轴下方的任何填充究其原因,是由于这样的事实,你已指定的fill_between
方法应填写之间的区域y1=0
和y2=0
,即无 区域。要确保填充不仅出现在 显式 x值上,请指定方法应按进行插值y1
以找到与的交集y2
,这是通过interpolate=True
在方法调用中指定来完成的。