Plotly Dash-Python:回调函数Schema验证错误求助
问题分析与解决方法
这个错误的核心是你的Dash回调绑定了两个输出组件,但只返回了单个Figure对象,而Dash要求绑定多个输出的回调必须返回元组或列表格式的多个值,每个值对应一个Output。
具体修正步骤
- 确认回调装饰器里的Output是数组/列表形式,比如:
@app.callback( [Output('success-pie-chart', 'figure'), Output('success-payload-scatter-chart', 'figure')], [Input('site-dropdown', 'value'), Input('payload-range-slider', 'value')] ) - 修改回调函数,确保它同时生成饼图和散点图,并返回两个Figure组成的元组或列表:
def update_charts(selected_site, payload_range): # 1. 生成成功率饼图 filtered_data_pie = ... # 根据selected_site过滤数据的逻辑 pie_figure = px.pie(filtered_data_pie, values='success', names='outcome') # 替换为你的饼图生成代码 # 2. 生成载荷散点图 filtered_data_scatter = ... # 根据payload_range过滤数据的逻辑 scatter_figure = px.scatter(filtered_data_scatter, x='payload_mass', y='success') # 替换为你的散点图生成代码 # 返回两个图表,元组或列表格式都可 return pie_figure, scatter_figure - 注意:哪怕其中一个图表不依赖某个输入,也必须返回对应Figure,不能省略。比如散点图只依赖滑块、饼图只依赖下拉框时,回调仍需同时处理两个输入,返回两个输出。
常见误区
- 不要只返回单个Figure,哪怕其中一个图表无变化,也要返回它的实例或重新生成。
- 不要把两个Figure合并成一个对象返回,必须是独立的两个对象组成的可迭代结构(元组/列表)。
内容的提问来源于stack exchange,提问作者Funerus
相关产品推荐
相关产品推荐

