我正在用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响应。当我试图制作不带选项卡的“测试图”时,只有一个文件并回调一切正常,而现在它甚至都没有尝试更新或下载数据。
我在做什么错了?