在Python中,如何计算趋势线上方的时间量

在Python中,如何计算趋势线上方的时间量,python,matplotlib,Python,Matplotlib,我想知道如何计算数据超过趋势线的时间。目前代码是这样的 import pandas as pd import numpy as np import matplotlib.pyplot as plt csv = pd.read_csv('data.csv') data = csv[['time', 'amount']] x = data['time'] y = data['amount'] plt.plot(x, y, 'bo-') z = np.polyfit(x, y, 1) p = n

我想知道如何计算数据超过趋势线的时间。目前代码是这样的

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

csv = pd.read_csv('data.csv')
data = csv[['time', 'amount']]
x = data['time']
y = data['amount']

plt.plot(x, y, 'bo-')

z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r--")

plt.show()
CSV文件如下所示

time,amount
10,5
9,5.5
8,5
7,6.3
6,6
5,4
图表显示了目前的情况

我有点想有这样的东西,如图所示


如何执行此操作?

Numpy遮罩可用于将曲线限制在某些条件适用的位置。该条件仅在阵列的值处计算,因此为了避免间隙,可以使用密集阵列:

将熊猫作为pd导入
将numpy作为np导入
将matplotlib.pyplot作为plt导入
data=pd.DataFrame(数据=[[10,5],[9,5.5],[8,5],[7,6.3],[6,6],[5,4]],列=['time','amount'])
data=data.sort_值(['time'])
x=np.array(数据['time'])
y=np.数组(数据['amount'])
plt.绘图(x,y,'bo-')
z=np.多边形拟合(x,y,1)
p=np.poly1d(z)
x_稠密=np.linspace(x[0],x[-1],500)
y_稠密=np.interp(x_稠密,x,y)
掩模=y_密度