本文介绍了更新输出图的 Plotly Dash 回调错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用 Plotly Dash 创建交互式图表.该代码从用户那里读取交易品种名称并从雅虎财经中提取历史数据,并绘制带有滑块的烛台图.当我运行代码时,我在浏览器中收到此错误:
I am trying to create an interactive chart using Plotly Dash. The code reads the symbol name from the user and pullout historical data from yahoo finance and plots a candlestick chart with an slider. As I run the code I am getting this error in the browser:
Callback error updating output-graph.children
源代码为:
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.graph_objs as go
import pandas_datareader.data as web
import pandas as pd
from app import app
import datetime
app = dash.Dash()
app.layout = html.Div(children=[
html.H1('Interactive Chart'),
dcc.Input(id='input', value='', type='text'),
html.Div(id='output-graph')
])
@app.callback(
Output(component_id='output-graph', component_property = 'children'),
[Input(component_id='input', component_property = 'value')])
def update_graph(input_data):
start = datetime.datetime(2018, 6, 1)
end = datetime.datetime.now()
df = web.DataReader(input_data, 'yahoo', start, end)
df['year'] = pd.DatetimeIndex(df.index).year
df['date'] = pd.DatetimeIndex(df.index)
return dcc.Graph(id='example-graph',figure ={'data':[go.Candlestick(x=df['date'],open=df['Open'],high=df['High'],low=df['Low'],close=df['Close'],
increasing={'line': {'color': 'green'}},decreasing={'line': {'color': 'red'}})],
'layout':{'title': str.upper(input_data),
'height': 1000,
"spikedistance": 200,
"hoverdistance": 100,
"xaxis": {
"showspikes": 'true',
"spikemode": "across",
"spikedash": "dash",
"spikecolor": "#000000",
"spikethickness": 1},
"yaxis": {
"showspikes": 'true',
"spikemode": 'across',
"spikedash": "dash",
"spikecolor": "#000000",
"spikethickness": 1
}}})
if __name__ == '__main__':
app.run_server(debug=True)
我不知道我在回调中哪里出错了.
I don't know where in the callback I am making mistake.
推荐答案
试试这个:
返回 html.Div(dcc.Graph(id='example-graph', figure=dict(data=traces,layout=layout)))
这篇关于更新输出图的 Plotly Dash 回调错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!