我有一个值列表,可以认为是Y轴。 X轴是列表中元素的索引。
例如
Y =
403
486
585
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
642.6
如果我绘制这些数据,它将如下所示:
我想找到一种方法来获得该行的一阶多项式函数和曲线下面积。
答案 0 :(得分:1)
您可以使用polyfit
查找函数,使用trapz
计算具有梯形规则的区域。
import matplotlib.pyplot as plt
import numpy as np
Y = [403, 486, 585, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6]
X = range(len(Y))
Z = np.polyfit(X, Y, 1)
A = np.trapz(Y,x=X)
fig, ax = plt.subplots(figsize=(10,10))
ax.plot(X,Y)
plt.hold()
ax.plot(X,Z[1] + np.multiply(Z[0],X))