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

Dash/Plotly联动图表更新失败问题排查求助

Dash联动图表无法更新问题排查

我尝试创建两个联动图表:点击fig_overview图表中的数据点时,fig_detail图表应切换为对应视图。严格按照官方教程实现,初始图表显示正常,但第二个图表无法更新。

运行环境

  • WSL
  • Python 3.10.12
  • jupyterlab 4.1.8
  • dash 2.17.0

代码示例

import numpy as np
import plotly.express as px
from dash import Dash, dcc, html
from dash.dependencies import Input, Output, State
import dash_bootstrap_components as dbc
import pandas as pd

DASH_THEME = dbc.themes.SOLAR
pd.options.plotting.backend = "plotly"

def fig_overview(data):
    n = 30
    fig = px.scatter(x=np.random.random((n,)), y=np.random.random((n,)))
    return fig


def fig_detail(data, task):
    n = 30
    fig = px.scatter(x=np.random.random((n,)), y=np.random.random((n,)))
    return fig

app = Dash('prrdash', external_stylesheets=[dbc.themes.SOLAR])
app.layout = html.Div(children=[
    dcc.Graph(id='fig_overview', figure=fig_overview(None)),
    dcc.Graph(id='fig_detail', figure=fig_detail(None, None))
])

@app.callback(
    Output('fig_detail', 'figure'),
    Input('fig_overview', 'clickData')
)
def select_project(clickData):
    if clickData is not None:
        fig = fig_detail(None, None)
        return fig

app.run(debug=True)

注:原代码缺失dash_bootstrap_components和pandas的导入语句,已补充以保证代码可运行

已尝试的排查方法

  • 验证task提取逻辑:在select_project()中print(task)能得到预期结果
  • 验证fig_detail()生成器:在回调内调用fig.show()可正常显示预期图表
  • 修改app.run()的mode和jupyter_mode参数
  • 调整布局(当前已是最简DOM结构)
  • 修改组件id

当前状态

目前有一个临时解决方案:将详情图表包裹在额外div中,通过替换children生成新dcc.Graph可实现更新,但希望了解最简方案失败的原因,寻求进一步排查建议或调试思路。

内容的提问来源于stack exchange,提问作者Jörg Neulist

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:48:27