Plotly Dash 回调错误更新输出图
Posted
技术标签:
【中文标题】Plotly Dash 回调错误更新输出图【英文标题】:Plotly Dash Callback error updating Output Graph 【发布时间】:2020-02-15 19:03:19 【问题描述】:我正在尝试使用 Plotly Dash 创建交互式图表。该代码从用户处读取交易品种名称,并从 yahoo Finance 中提取历史数据,并绘制带有滑块的烛台图。当我运行代码时,我在浏览器中收到此错误:
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)
我不知道我在回调中哪里出错了。
【问题讨论】:
我知道这是一个有年头的问题,但我使用 Quandl 而不是 Yahoo 进行了测试,它对我有用。使用破折号 1.11 到 1.18 进行测试。我认为 DataReader 发生了错误。如果您单击错误消息,则应该有详细信息。它很可能是 DataReader。仅供参考 pandas_datareader 不再适用于 Yahoo。 【参考方案1】:试试这个:
return html.Div(dcc.Graph(id='example-graph', figure=dict(data=traces,layout=layout)))
【讨论】:
点评来源: 您好,请不要只用源代码回答。尝试对您的解决方案如何工作提供一个很好的描述。请参阅:How do I write a good answer?。谢谢html.Div
包装是不必要的。 Op 的代码可以在 DataReader 中进行一些修复以上是关于Plotly Dash 回调错误更新输出图的主要内容,如果未能解决你的问题,请参考以下文章
回调错误更新 plot-div.children (Plotly Dash)
Plotly Dash dcc.Interval 在一段时间后失败:回调错误更新 graph.figure