两条曲线之间的面积

Area between two curves

我能够绘制线条并填充中间的区域,但是,我正在尝试计算两条曲线之间的区域。我不能使用积分,因为我没有方程式,我只有一堆点。如何计算两者之间的面积?

fig,ax1= plt.subplots(figsize=(8,5))
plt.plot(Lag_Distance,True_Values,color='blue',label='Sampled Variogram'); plt.scatter(Lag_Distance,True_Values,color='blue',edgecolor='blue',zorder=10)
plt.plot(Lag_Distance,a['Variogram Value'],color='black',label='Estimated Variogram (P=1)'); plt.scatter(Lag_Distance,a['Variogram Value'],color='black',edgecolor='black',zorder=10) 
plt.fill_between(Lag_Distance,a['Variogram Value'],True_Values,color='red',alpha=0.2)
plt.legend(loc='lower right',fontsize=20)
ax1.set_xlabel('Lag Distance',fontsize=20);
ax1.set_ylabel('$^\gamma$',fontsize=30);
ax1.set_title(' Variogram in the major direction 160 (P =1) ',fontsize=20);
plt.subplots_adjust(left=0.0,bottom=0.0,right=1.0,top=1.1); plt.show() # set plot size

由于所有的点都是由线连接的,使用梯形法则积分可以得到准确的面积。

numpy 库具有梯形积分函数,因此您可以计算估计变异函数下的面积与采样变异函数下的面积之间的差异:

import numpy as np

area = np.trapz(y=a['Variogram Value'] - True_Values, x=Lag_Distance)