Как получить фактические точки данных из графа с использованием Python? - PullRequest
0 голосов
/ 25 июня 2018

Я сделал график для биржевых данных, используя модуль fbprophet в python. мой график выглядит так: 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 module

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 колбы в пользовательский интерфейс (угловой 4)

Заранее спасибо!

1 Ответ

0 голосов
/ 25 июня 2018

734094 / 365,25 = 2009,8398. Это очень показательный номер для даты, которая, как я полагаю, по вашему примеру - 2010-11-18. Похоже, ваша информация о дате выражается в виде числа с плавающей запятой, где разность 1,0 соответствует одному дню: и контрольной датой для значения 0,0 является 1 января 1 года нашей эры.

Вы можете попытаться написать функцию, которая считается с 01-01-1, или, может быть, вы можете найти ее в библиотеке. Кроме того, вы можете посмотреть на преобразованное значение для известной вам даты и поработать оттуда.

...