График на графике не соответствует данным времени (х) - PullRequest
0 голосов
/ 03 июня 2018

Я новичок, поэтому этот код, вероятно, уродлив!Я пытаюсь нанести на график содержимое простого фрейма данных (x = время, y = значение) с помощью следующего кода:

import json
import requests
import pandas as pd
import datetime

import plotly.offline as py
import plotly.graph_objs as go
import plotly.figure_factory as ff
py.init_notebook_mode(connected=True)

starttime = time.time()
now = datetime.datetime.now()
json_url = 'https://poloniex.com/public?command=returnLoanOrders&currency=MAID'

json_backup = 'temp.json'
data_store_filename = 'data_store.dat'
df_store = pd.DataFrame(columns=["Time", "Average_Rate"])

df_store = pd.read_json(json_backup)

while True:
    #download the data we want
    j = requests.get(url=json_url)
    content = json.loads(j.content)
    #create a dataframe with that data
    df = pd.DataFrame.from_dict(content['offers'])
    df = df[['rate', 'amount', 'rangeMin', 'rangeMax']]
    #Create a dateframe with the data we intend to store
    df_rate = pd.DataFrame(columns=["Time", "Average_Rate"])
    #converts data type to float so that we can do some math on it
    df[['rate']] = df[['rate']].astype(float)
    df[['amount']] = df[['amount']].astype(float)
    #multiply the rate column by 100 to get the correct rate"
    df['rate'] *= 100
    length = len(df.index)

    average_rate = df['rate'].sum() / length

    df_store = df_store.append({
         "Time": datetime.datetime.now(),
         "Average_Rate": average_rate
          }, ignore_index=True)

    df_store.to_json(json_backup)

    backup = pd.read_json(json_backup)

    trace1 = go.Scatter(
    x = backup.Time,
    y = backup.Average_Rate,
    mode = 'lines',
    name = 'lines'
    )
    py.iplot([trace1])

    time.sleep(30.0 - ((time.time() - starttime) % 30.0))

Я получаю эту странную диаграмму, которая, кажется, возвращается во времени.Я проверил свои данные, и время правильное, а график нет.Может кто-нибудь объяснить мне, что происходит и как этого избежать?

Диаграмма с ошибкой: Ссылка

1 Ответ

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

Это происходит потому, что pd.read_json(json_backup) заканчивает сортировку индекса лексикографически, так что 10 предшествует 2. Изменение этой строки на pd.read_json('temp.json').sort_index() решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...