Реальное время / обновление График Plotly в приложении Python / Flask? - PullRequest
0 голосов
/ 13 ноября 2018

Я построил Webapp с Flask (с интерфейсом JS), и теперь я хотел бы добавить диаграммы для отображения моих данных.

Мне удалось встроить в него диаграмму, но она статическая, есть ли способсделать его динамическим (например, со случайными значениями, чтобы позже я мог добавить к нему свои собственные данные)?

def index():

    rng = pd.date_range('1/1/2011', periods=7500, freq='H')
    ts = pd.Series(np.random.randn(len(rng)), index=rng)

    graphs = [

        dict(
            data=[
                dict(
                    x= arr,
                    y=[10, 20, 30],
                    type='scatter'
                ),
            ],
            layout=dict(
                title='first graph'
            )
        ) 

    ]

    # Add "ids" to each of the graphs to pass up to the client
    # for templating
    ids = ['graph-{}'.format(i) for i, _ in enumerate(graphs)]

    # Convert the figures to JSON
    # PlotlyJSONEncoder appropriately converts pandas, datetime, etc
    # objects to their JSON equivalents
    graphJSON = json.dumps(graphs, cls=plotly.utils.PlotlyJSONEncoder)

    return render_template('index.html',
                           ids=ids,
                           graphJSON=graphJSON)

1 Ответ

0 голосов
/ 13 ноября 2018

HTTP по своей природе не имеет состояния, поэтому, если вы хотите динамический, вы должны будете сделать это во внешнем интерфейсе.

Не зная больше о вашем внешнем интерфейсе, я не могу привести конкретные примеры, но, надеюсь, это поставит вас направая дорожка:

  • Обновлять данные диаграммы через постоянные интервалы посредством AJAX-вызовов к бэкэнду.
  • С этими расширенными данными обновлять диаграмму с помощью Plotly.extendtraces
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...