我已经使用python中的fbprophet
模块对股票数据进行了绘制。我的图看起来像这样:
我正在使用的代码是这样的:
model = Prophet()
model.fit(df)
future = model.make_future_dataframe(periods=365) # forecasting for 1 year from now.
forecast = model.predict(future)
''' Plotting the forecast '''
figure = model.plot(forecast)
plt.plot = figure
figure.savefig('forecasting for 1 year.svg')
根据上面的代码,我制作了这张图。然后我使用mpld3
模块从中提取数据点
import mpld3
# print(mpld3.fig_to_dict(figure))
print(mpld3.fig_to_dict(figure)['data'])
它给我这样的输出:
{'data01': [[734094.0, 3.3773930153824794], [734095.0, 3.379438304627263], ........ 'data03': [[0.0, 0.0]]}
但是问题来自上面的输出,即时获取的y
值是正确的,但是x
值不是正确的。实际的x值是这样的:>
"x": [
"2010-11-18 00:00:00",
"2010-11-19 00:00:00",
"2010-11-22 00:00:00" ... ]
但是我得到了x个这样的值:734094.0 , 734095.0 ..
那么我如何从图形中获取实际数据(数据点x和y值)?
还有其他方法吗?我想从图中提取数据点,然后将它们从烧瓶api发送到UI(角度4)
提前谢谢!
答案 0 :(得分:1)
734094 / 365.25 = 2009.8398。根据您的示例,我认为这是一个非常具有启发性的数字,假设您的日期是2010-11-18。看来您的日期信息是用浮点数表示的,其中的差值1.0对应于一天:并且,值0.0的参考日期是公元1月1日。
您可以尝试编写一个从01-01-1开始计数的函数,或者可以在库中找到一个函数。或者,您可以查看已知日期的转换值,然后从那里开始工作。