两条曲线画阴影,可直接用plt.fill_between()函数来完成;
画多条曲线之间的阴影需要在此之前多加一步,先确定多条曲线的阴影边界:
第一步:确定多条曲线的阴影边界
为了在几条曲线的最大值和最小值之间填充,先需要确定一个数组,该数组代表曲线上每个点的最小值或最大值。如果所有曲线共享相同的x值,则可以很容易地通过沿组合y值的一个轴取最小值来完成此操作。
np.min(np.c_[y1, y2, y3, ...], axis=1)
np.max(np.c_[y1, y2, y3, ...], axis=1)
np.min()函数的用法
这个非常好用,先把需要进行比较的数据,转化成一个数组,然后按行或者按列取出自己的数值就OK
a = np.array([[1,5,3],[4,2,6]])
print(a.min()) #无参,所有中的最小值
print(a.min(0)) # axis=0; 每列的最小值
print(a.min(1)) # axis=1;每行的最小值
第二步:plt.fill_between()函数
# 画阴影区域
a, b = 2, 9 # integral limits
xf = x[np.where((x>a)&(x<b))]
# plt.fill_between(xf),在xf范围内
# 曲线1:np.zeros(len(xf))与曲线2:func(xf)之间的区域
# np.zeros()从零开始,np.ones()从1开始,np.ones()*20从20开始
# plt.fill_between(xf, np.zeros(len(xf)), func(xf), color='blue', alpha=.25)
# 两条曲线之间的区域
plt.fill_between(xf,func1(xf),func(xf),color='blue',alpha=0.25)