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

请求技术支持:将Plotly Jupyter Notebook图表渲染至Dash Python仪表盘及散点图模板

没问题!完全可以在Dash里实现和Jupyter Notebook中一模一样的Plotly图表渲染——毕竟Dash本身就是Plotly官方推出的仪表盘框架,两者的图表语法几乎完全通用,只是需要把Plotly生成的图表对象整合到Dash的组件体系里就行。下面我给你一步步解决问题:

1. 先确认:Dash和Plotly的兼容性

所有你在Jupyter里能用的Plotly图表(散点图、折线图、热力图等等),都可以无缝迁移到Dash中。核心逻辑就是:把Jupyter里生成的Plotly figure 对象,直接放到Dash的 dcc.Graph 组件里,不需要修改任何Plotly的图表代码。

2. 解决Jupyter中无法运行Dash的问题

你在Jupyter里跑不了Dash,是因为默认的Dash类是为独立Web应用设计的,要在Notebook里运行得用jupyter-dash扩展:

  • 先安装依赖:
pip install dash jupyter-dash
  • 然后用JupyterDash替代普通Dash类运行,示例代码:
from jupyter_dash import JupyterDash
from dash import dcc, html
import plotly.express as px

app = JupyterDash(__name__)
app.layout = html.Div([
    html.H3("Jupyter里的Dash测试"),
    dcc.Graph(id='test-graph', figure=px.scatter(x=[1,2,3], y=[4,5,6]))
])

if __name__ == '__main__':
    app.run_server(mode='inline')  # inline模式在Notebook内显示,external则打开外部浏览器
3. Plotly精美散点图的Dash完整模板

下面是一个可直接运行的模板,用Plotly Express生成带交互的散点图,你可以直接替换成自己的数据集和Plotly代码:

import dash
from dash import dcc, html
import plotly.express as px
import pandas as pd

# 1. 加载你的数据(这里用Plotly自带的鸢尾花数据集做示例)
df = px.data.iris()

# 2. 生成Plotly散点图figure——这部分和你在Jupyter里写的完全一样!
fig = px.scatter(
    df,
    x="sepal_width",
    y="sepal_length",
    color="species",  # 按物种分颜色
    size="petal_length",  # 用花瓣长度控制点大小
    hover_data=["petal_width"],  # 悬浮显示额外数据
    title="鸢尾花特征散点图",
    labels={"sepal_width": "花萼宽度", "sepal_length": "花萼长度"},  # 自定义坐标轴标签
    template="plotly_dark"  # 用深色主题,可选plotly_white等
)

# 3. 初始化Dash应用
app = dash.Dash(__name__)

# 4. 构建Dash仪表盘布局
app.layout = html.Div(
    style={'padding': '20px'},  # 全局内边距
    children=[
        html.H1("我的Plotly散点图仪表盘", style={'textAlign': 'center'}),  # 居中标题
        html.Div(
            "基于Plotly的交互式散点图,支持悬浮查看详情、缩放拖拽",
            style={'textAlign': 'center', 'marginBottom': '20px'}
        ),
        # 把Plotly的figure传入dcc.Graph组件
        dcc.Graph(
            id='interactive-scatter-graph',
            figure=fig,
            style={'height': '70vh'}  # 设置图表高度为视口的70%
        )
    ]
)

# 5. 运行应用
if __name__ == '__main__':
    app.run_server(debug=True)  # debug=True支持热更新,修改代码后自动刷新
4. 迁移Jupyter已有Plotly图表到Dash的步骤
  • 把Jupyter里生成Plotly figure 的代码原封不动复制到Dash脚本中
  • 初始化Dash应用,在app.layout里添加dcc.Graph组件,将其figure参数设为你复制的fig对象
  • 运行Dash应用,就能看到和Jupyter里完全一致的图表,还能额外添加下拉框、滑块等交互组件来动态更新图表

内容的提问来源于stack exchange,提问作者MGB.py

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:33:32