如何使用 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 开始计数的函数,或者您可以在库中找到一个。或者,您可以查看已知日期的转换值,然后从那里开始工作。
我使用 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 开始计数的函数,或者您可以在库中找到一个。或者,您可以查看已知日期的转换值,然后从那里开始工作。