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

How to get actual data points from a graph using python?

我使用 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 (angular 4)

提前致谢!

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

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