画线连接时间序列中的大多数数据点

时间:2019-05-19 06:18:52

标签: python line connect

我想了解如何绘制最佳拟合线或连接最多点的线;一条线用于局部最小值,另一条线用于局部最大值。

类似此图片的东西: enter image description here

下面是查找局部最小值和最大值点的代码

import numpy as np
import pandas as pd  
import matplotlib.pyplot as plt
from pandas_datareader import data as pdr
import fix_yahoo_finance as yf
yf.pdr_override() 

startdate = dt.date(2016, 1, 1)
#enddate = dt.date(2018, 10, 22)
today = dt.date.today()
index_ticker = "^GSPC"
index_df = pdr.get_data_yahoo(index_ticker, start=startdate, end=today)

from scipy.signal import argrelextrema
n=50 # number of points to be checked before and after 

# Find local peaks/bottoms
index_df['min'] = index_df.iloc[argrelextrema(index_df['Adj Close'].values, np.less_equal, order=n)[0]]['Adj Close']
index_df['max'] = index_df.iloc[argrelextrema(index_df['Adj Close'].values, np.greater_equal, order=n)[0]]['Adj Close']

# Plot results
plt.scatter(index_df['Adj Close'].index, index_df['min'], c='r')
plt.scatter(index_df['Adj Close'].index, index_df['max'], c='g')
plt.plot(index_df['Adj Close'].index, index_df['Adj Close'])
plt.show()

我遇到了本教程https://prappleizer.github.io/Tutorials/Plotting/Plotting.html,该教程画了一条最佳拟合线,并带有阴影的不确定区域。

enter image description here

这就是我要寻找的,但是我无法弄清楚如何将其应用于时间序列以获取所需的输出,如时间序列图中所示。

感谢任何人都可以提供建议。谢谢!

1 个答案:

答案 0 :(得分:0)

现在您有了局部的最小值和最大值,在这些点的每组上绘制线性回归。使用您喜欢的Python统计软件包来执行此操作。