gpt4 book ai didi

python - Python中有没有办法计算多条曲线之间的重叠面积?

转载 作者:行者123 更新时间:2023-12-05 08:46:33 25 4
gpt4 key购买 nike

虽然计算两条曲线之间的重叠区域已被多次解决,但我尚未找到计算多条曲线(即 4 条曲线)之间的重叠区域的解决方案。

Plot of 4 curves

有人有优雅的解决方案吗?

最佳答案

您可以取 4 条曲线中的最小值 ( np.amin ) 并计算其面积(例如通过 np.trapz )。如果曲线没有公共(public) x,则首先需要使用共享 x 重新计算它们(例如使用 np.interp )。

from matplotlib import pyplot as plt
from scipy.stats import gaussian_kde
import numpy as np

data = np.random.rand(6, 4) ** 3
x = np.linspace(-1, 2, 200)
ys = []
for label in range(4):
kde_func = gaussian_kde(data[:, label])
y = kde_func(x)
plt.plot(x, y, label=label)
ys.append(y)
y_intersection = np.amin(ys, axis=0)
area = np.trapz(y_intersection, x)
fill_poly = plt.fill_between(x, 0, y_intersection, fc='yellow', ec='black', alpha=0.5,
label=f'intersection: {area:.3f} ')
fill_poly.set_hatch('xxx')
plt.legend()

area under 4 curves

关于python - Python中有没有办法计算多条曲线之间的重叠面积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69570238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com