如何使用回调清除破折号

时间:2020-07-17 13:22:35

标签: python python-3.x plotly-dash

我有一个想要重置为原始状态的图形,如图所示: the original state

我尝试了此操作,好像我打印出图形的初始状态时说“无”一样。

app.layout = html.Div([
    html.Div(
        dcc.Graph(id = 'graph')
    )
])
           
@app.callback(
    Output('graph', 'figure'),
    [Input('click', 'clickedData')])
def myfun(x): 
    ...
    return None

但是我得到了错误:无法读取null的属性“ layout”

我应该返回什么,以便新图返回到原始的空状态?

2 个答案:

答案 0 :(得分:2)

您应该返回一个go.Figure对象,因为它将被放置在figure的{​​{1}}属性中。您可以通过将dcc.Graph的参数赋予x=[], y=[]来使数字空白:

go.Figure

(下面的完整应用代码)

点击前后

完整的应用代码

@app.callback(Output('graph', 'figure'), [Input('click', 'n_clicks')])
def myfun(n_clicks):
    if not n_clicks:
        raise dash.exceptions.PreventUpdate
    fig = go.Figure(data=[go.Scatter(x=[], y=[])])
    return fig

答案 1 :(得分:0)

应该有助于返回空数字:fig = {}
在回调中,只需写入return {}而不是return None