我在点列表中有两条不同的曲线(y1,y2),并且我想在以下情况下找到曲线之间的区域:
我找到了this post,但它只计算两个面积的总和。
如果我们绘制所需的内容,我将分别需要蓝色区域和红色区域。
答案 0 :(得分:1)
修改: 事后我发现,这种解决方案并不精确,在某些情况下根本无法使用。只要没有其他更好的答案,我都会在这里保留。
您可以使用
diff = y1 - y2 # calculate difference
posPart = np.maximum(diff, 0) # only keep positive part, set other values to zero
negPart = -np.minimum(diff, 0) # only keep negative part, set other values to zero
将蓝色与红色分开。然后使用np.trapz
计算其面积:
posArea = np.trapz(posPart)
negArea = np.trapz(negPart)