Plotly Dash |удалить фрейм данных при изменении выпадающего списка - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу удалить фрейм данных (который используется в графике для OHLCV) и воссоздать его с новыми данными, если конкретный выпадающий список был изменен.Короче говоря, если я изменяю интервал времени, в течение которого я получаю данные обмена (1м, 5м, 15м, 30м, 1ч и т. Д.), Я хочу, чтобы данные были «сброшены» / «стерты» с кадра данных.

Мне нужна опция добавления внизу, чтобы рассчитать изменения на рынке.Поэтому я предполагаю, что что-то подобное может работать, но я не могу понять, как передать новый пустой фрейм данных обратно в update_graph_scatter

AppendedValue = pd.DataFrame()

def clear_df():
    del AppendedValue
    AppendedValue = pd.DataFrame()
    return AppendedValue

@app.callback(Output('dropdown_interval', 'value'), [Input('dropdown_interval', 'options')])
def update_interval_value(intervals):
    AppendedValue = clear_df()
    return intervals[0]['value']

#POPULATES THE GRAPH USING A 20 SECOND INTERVAL. EVERY 20 SECONDS THE CALLBACK TRIGGERS "UPDATE_GRAPH_SCATTER"
@app.callback(Output('crypto-live-graph', 'figure'), [Input('dropdown_exchange', 'value'), Input('dropdown_ticker', 'value'), Input('dropdown_interval', 'value'), Input('arglist', 'value'), Input('graph-update', 'n_intervals')], [State('crypto-live-graph', 'figure')])
def update_graph_scatter(dropdown_exchange, dropdown_ticker, dropdown_interval, arglist, graphupdate, figure):

    global AppendedValue
    ##########################  PULL OHLCV DATA  ###################################
    PullValues = bf.trader()
    funcName = dropdown_exchange.lower() + '_data'
    exchange = dropdown_exchange.lower()
    #AppendedValue = getattr(PullValues, funcName)(dropdown_ticker, dropdown_interval)
    #NewDateTimes = AppendedValue.index
    ##########################  END PULL OHLCV DATA  ###############################
    if AppendedValue.empty:
        AppendedValue,last_date = getattr(PullValues, funcName)(dropdown_ticker, dropdown_interval)
    else:
        AppendedValue, last_date = append_new_bars(AppendedValue, exchange, dropdown_ticker, PullValues, dropdown_interval)
    NewDateTimes = AppendedValue.index
    ##########################  CREATE OHLCV FORMAT  ###############################
    trace = Candlestick(
        x=NewDateTimes,
        open=AppendedValue['open'],
        high=AppendedValue['high'],
        low=AppendedValue['low'],
        close=AppendedValue['close'],
        showlegend=False,
        name='BTC/USD',
        legendgroup='BTC/USD',
        increasing=dict(line=dict(color=colorscale[2])),
        decreasing=dict(line=dict(color=colorscale[4])),
        yaxis='y1'
    )
    data=[trace]
...