You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly Dash仪表盘调用Callback后无图表显示故障求助

Dash航空公司可视化仪表盘不渲染问题修复

核心问题点

  • 缺少输入空值判断:回调触发时若未选择报表类型/年份,year为None,直接执行int(year)会抛出异常,因开启了suppress_callback_exceptions不会暴露错误,仅表现为图表不渲染
  • 代码中残留HTML转义字符",未替换为正常双引号会触发语法错误
  • 冗余State参数:代码中声明的5个State参数完全没有被使用,属于多余配置(不影响运行但不符合规范)

修复方案

1. 替换所有转义字符

将代码中所有的"替换为正常双引号"

2. 回调函数增加空值判断

在get_graph函数最开头增加如下代码:

# 未完成全部选择时不执行计算
if not chart or not year:
    return [no_update]*5

3. 可选优化:删除冗余State参数

回调定义中没有用到的State参数可以直接删除,修改后的回调声明如下:

@app.callback( [Output(component_id = 'plot1', component_property = 'children'),
 Output(component_id = 'plot2', component_property = 'children'),
 Output(component_id = 'plot3', component_property = 'children'),
 Output(component_id = 'plot4', component_property = 'children'),
 Output(component_id = 'plot5', component_property = 'children')],
               [Input(component_id='input-type', component_property='value'),
                Input(component_id='input-year', component_property='value')])

对应的get_graph函数参数也删除后面的State参数:

def get_graph(chart, year):

修改完成后重新运行代码,依次选择报表类型和年份即可正常渲染图表。

内容的提问来源于stack exchange,提问作者Youarentsick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:06:07