【问题标题】:Plotly Dash figure/graph/callback: Where do I go from here?Plotly Dash 图形/图形/回调:我从这里去哪里?
【发布时间】:2021-07-04 12:30:52
【问题描述】:

我收到以下错误,查看我的代码我不知道为什么?

我已尝试将to_json/to_dict('records') 应用于我的return fig 对象,但似乎无法解决问题。

任何帮助将不胜感激......

dash.exceptions.InvalidCallbackReturnValue:<Output bar_line_1.figure> 的回调 返回类型为Figure 的值 这不是 JSON 可序列化的。 …… ... . 有问题的值是唯一返回的值, 或在返回列表的顶层, ........... ... . 一般来说,Dash 属性只能是 破折号组件,字符串,字典,数字,无, 或这些列表。

@app.callback(
    Output('bar_line_1', 'figure'),
    [Input('region', 'value')],
    [Input('countries', 'value')],
    [Input('select_years', 'value')]
    )
def update_graph(region, countries, select_years):
    mask = (
        (data['Region'] == region)
        & (data['Country'] == countries)
        & (data['Year'] >= select_years[0])
        & (data['Year'] <= select_years[1])
    )
    
    filtered_data = data.loc[mask, :]

    fig = make_subplots(specs=[[{'secondary_y': True}]])

    fig.add_trace(
        go.Scatter(
            x=filtered_data['Year'],
            y=filtered_data['GDP'],
            name='GDP'
        ),
        secondary_y=False,
    )

    fig.add_trace(
        go.Scatter(
            x=filtered_data['Year'],
            y=filtered_data['FDI'],
            name='FDI'
        ),
        secondary_y=True
    )
    
    return fig```

【问题讨论】:

  • 带有id='bar_line_1'的组件是dcc.Graph()组件吗?
  • @FlaviaGiammarino 感谢您的回复。我发现它是什么。问题来自一个不同的 .py 文件,我在将 api 数据导入 main.py 之前用于清理它。当一列(Year)本来是整数时,它已更改为对象类型,我几天来一直试图找到错误。使用 df['Year'].astype(int) 进行转换解决了问题,并且图表正在通过回调工作,无需更改。

标签: python plotly dashboard


【解决方案1】:

问题来自另一个 .py 文件,我在将 api 数据导入 ma​​in.py 之前用于清理它。

一列(年份)本来应该是一个整数,但它已经变成了一个对象类型,我几天来一直试图找出错误。

使用df['Year'].astype(int) 进行转换解决了该问题,并且图表正在通过回调工作,无需进行任何更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-25
    • 2014-07-18
    • 2010-09-25
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多