【问题标题】:Error when trying to produce a Graph in Plotly Dash尝试在 Plotly Dash 中生成图形时出错
【发布时间】:2021-11-13 11:54:07
【问题描述】:

当尝试使用以下代码生成图形时

@app.callback(
    [
        Output("selected-plot", "figure")
    ],
    [
        Input("submit-selected-plotting", "n_clicks"),
        State("table", "data")
    ],
)
def plot(button_clicked, data)           
    fig = go.Scatter(x=data["index"],
                     y=data["result"],
                     mode='lines',
                     name='result')
    return fig

            dbc.Col(
                [
                    dcc.Graph(id='selected-plot')
                ],
                width=6,
            )

我收到一个奇怪的错误,应用程序需要一个不同的对象:

dash._grouping.SchemaTypeValidationError:架构:[selected-plots.figure>] 小路: () 预期类型:(, ) 类型的接收值: 分散({...})

我已经尝试了所有方法,但似乎无法解决此错误。 提前感谢您的任何建议!

【问题讨论】:

    标签: python plotly plotly-dash


    【解决方案1】:

    该错误是由于应用程序需要一个图形对象,您可以通过更新回调来修复它,如下所示:

    @app.callback(
        [
            Output("selected-plot", "figure")
        ],
        [
            Input("submit-selected-plotting", "n_clicks"),
            State("table", "data")
        ],
    )
    def plot(button_clicked, data)     
          
        trace = go.Scatter(
            x=data["index"],
            y=data["result"],
            mode='lines',
            name='result'
        )
    
        return [go.Figure(data=trace)]
    

    【讨论】:

    • 感谢您的回答。不幸的是,这并没有解决问题。回溯实际上说收到了一个图形对象,但它显然期待一些不同的东西,我不知道为什么。
    • 我认为这是因为它需要一个列表。我刚刚更新了我的答案,如果它现在有效,请告诉我。
    • 成功了!我不知道为什么它需要一个列表,因为默认情况下它不应该,无论如何非常感谢。
    • 这是因为Output("selected-plot", "figure") 括在方括号中,如果您删除它们,那么我之前的答案将起作用。
    猜你喜欢
    • 2021-08-02
    • 2020-08-25
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 2022-01-20
    • 2020-09-27
    相关资源
    最近更新 更多