达世币实时图表不刷新

时间:2018-11-15 17:09:11

标签: python plotly-dash

我正在用Dash编写简单的应用程序,我在制作实时图形时遇到问题。我制作了两个标签,并希望在其中一个上显示实时图形。我用基本布局制作了一个index.py文件:

app.layout = html.Div(
    [
    #header
    html.Div([
        html.Span("Automation for Binance", className='app-title'),

    ],
    className='row header',
    ),
    html.Div([

            dcc.Tabs(
                id="tabs",
                style={"height":"20","verticalAlign":"middle"},
                children=[
                    dcc.Tab(label="Analysis", value="analysis_tab"),
                    dcc.Tab(label="Settings", value="settings_tab"),
                ],
                value="analysis_tab",
            )

            ],
            className="row tabs_div"
            ),

    html.Div(id="tab_content", className="row", style={"margin": "2% 3%"}),
    ])


@app.callback(Output("tab_content", "children"), [Input("tabs", "value")])
def render_content(tab):
    if tab == "analysis_tab":
        return analysis.layout
    elif tab == "settings_tab":
        return html.Div([
            html.H3('Tab content 1')
        ])
    else:
        return analysis.layout

if __name__ == "__main__":
    app.run_server(debug=True)

在与index.py相同的目录中,我制作了apps文件夹,其中包含__init__.py和每个选项卡两个文件作为外部应用程序,这是我的第一个选项卡文件:

colors = {
    'background': '#111111',
    'text': '#7FDBFF'
}

def candlestick_chart(df):
    trace = go.Candlestick(x=df.Date,
                       open=df.Open,
                       high=df.High,
                       low=df.Low,
                       close=df.Close)

    layout = go.layout(
        xaxis=dict(range=[df.Date[-30], df.Date[-1]]),
        plot_bgcolor=colors['background'],
        paper_bgcolor=colors['background'],
        font=dict(color=colors['text']),
    )

    return {'data':[trace], 'layout': layout,}


layout = [
    html.Div([
        html.Div(
            dcc.Graph(
                id="price-graph",
                style={"height": "90%", "width": "98%"},
            ),
            dcc.Interval(
                id="graph-update",
                interval=4000,
            )
        )
    ])
]

@app.callback(Output('price-graph', 'figure'),
            events=[Event('graph-update', 'interval')])
def update_graph(df):
    df = manager.get_candles('BTCUSDT', '1m')
    return candlestick_chart(df)

现在我的问题是,当我运行我的应用程序时,得到的全部是没有数据的空烛台图表。而且在控制台中,我什至看不到自动更新POST响应。当我试图制作不带选项卡的“测试图”时,只有一个文件并回调一切正常,而现在它甚至都没有尝试更新或下载数据。

我在做什么错了?

0 个答案:

没有答案