如何使用python从图形中获取实际数据点?

时间:2018-06-25 07:35:07

标签: python python-3.x graph mpld3

我已经使用python中的fbprophet模块对股票数据进行了绘制。我的图看起来像这样: enter image description here

我正在使用的代码是这样的:

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)

提前谢谢!

1 个答案:

答案 0 :(得分:1)

734094 / 365.25 = 2009.8398。根据您的示例,我认为这是一个非常具有启发性的数字,假设您的日期是2010-11-18。看来您的日期信息是用浮点数表示的,其中的差值1.0对应于一天:并且,值0.0的参考日期是公元1月1日。

您可以尝试编写一个从01-01-1开始计数的函数,或者可以在库中找到一个函数。或者,您可以查看已知日期的转换值,然后从那里开始工作。