我正在尝试使用scikit-learn,pandas和matplotlib绘制预测。 我能够预测数据并能够将它们保存在数据帧中。但现在当我绘制它们时,有两种情况。
我为预测预测创建了一个新列,并使用我预测的值绘制它们
Adj. Close
是我的功能,forecast
是我的预测。如你所见,日期完全匹配,所以不应有任何差距。
我的数据:
HL_Precentage Adj. High Adj. Low Adj. Close Adj. Volume \
Date
2016-08-19 0.545879 801.23 796.88 799.65 1120763.0
2016-08-22 0.625685 799.30 794.33 796.95 853365.0
2016-08-23 0.629405 801.00 795.99 796.59 917513.0
2016-08-24 0.973747 798.46 790.76 793.60 1284437.0
2016-08-25 NaN NaN NaN NaN NaN
2016-08-26 NaN NaN NaN NaN NaN
2016-08-27 NaN NaN NaN NaN NaN
2016-08-28 NaN NaN NaN NaN NaN
2016-08-29 NaN NaN NaN NaN NaN
2016-08-30 NaN NaN NaN NaN NaN
label Forecast
Date
2016-08-19 802.79 NaN
2016-08-22 801.23 NaN
2016-08-23 803.08 NaN
2016-08-24 800.71 NaN
2016-08-25 NaN 797.835059
2016-08-26 NaN 799.896814
2016-08-27 NaN 802.552861
2016-08-28 NaN 798.483859
2016-08-29 NaN 795.999011
2016-08-30 NaN 797.866796
(红色为Adj. Close
,预测为蓝色)
为了消除这一差距,我只在Adj. Close
栏中插入了预测值,而且我觉得这个图表是连续的。
数据:
HL_Precentage Adj. High Adj. Low Adj. Close Adj. Volume \
Date
2016-08-19 0.545879 801.23 796.88 799.650000 1120763.0
2016-08-22 0.625685 799.30 794.33 796.950000 853365.0
2016-08-23 0.629405 801.00 795.99 796.590000 917513.0
2016-08-24 0.973747 798.46 790.76 793.600000 1284437.0
2016-08-25 NaN NaN NaN 796.877634 NaN
2016-08-26 NaN NaN NaN 799.448407 NaN
2016-08-27 NaN NaN NaN 801.340352 NaN
2016-08-28 NaN NaN NaN 798.130538 NaN
2016-08-29 NaN NaN NaN 794.900353 NaN
2016-08-30 NaN NaN NaN 796.483742 NaN
label Forecast
Date
2016-08-19 802.79 NaN
2016-08-22 801.23 NaN
2016-08-23 803.08 NaN
2016-08-24 800.71 NaN
2016-08-25 NaN NaN
2016-08-26 NaN NaN
2016-08-27 NaN NaN
2016-08-28 NaN NaN
2016-08-29 NaN NaN
2016-08-30 NaN NaN
我的问题是如何使我的第一张图连续,以使我的预测不连续?
答案 0 :(得分:0)
如果您希望线条连续,则数据需要重叠,或者从1列开始连续序列。一个简单的方法就是在封测之前用adj替换预测中的NA<
df['Adj. Close'].fillna(df.Forecast, inplace=True).plot()
答案 1 :(得分:0)
您的数据中存在不连续性 - 最后Adj. close
值记录在08/24,第一个Forecast
值是08/25。
为了在行中没有中断,您需要两个系列的末端重叠至少一个时间点。例如,您可以为08/24计算Forecast
,其中您还有Adj. close
值。