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

如何不向Plotly服务器发送数据,离线创建Plotly仪表盘?

如何在Jupyter Notebook中创建无需上传至Plotly账号的离线仪表盘

好问题!我之前也踩过这个坑——Plotly官网的Dashboard API确实默认绑定云端账号,会把仪表盘上传后返回URL,但咱们完全可以在本地Jupyter环境里搭建纯离线的交互式仪表盘,根本不需要碰云端账号。下面给你两种实用方案:

方案一:用JupyterDash搭建完整交互式仪表盘(推荐)

Dash是Plotly官方的交互式仪表盘框架,而jupyter-dash是专门适配Jupyter Notebook的版本,所有运行逻辑都在本地,不会上传任何数据到云端。

步骤1:安装依赖

先确保你装了必要的库:

pip install dash jupyter-dash plotly

步骤2:完整代码示例

下面是一个带下拉交互的离线仪表盘,直接在Notebook里运行:

from jupyter_dash import JupyterDash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.express as px

# 加载示例数据(你可以换成自己的数据集)
df = px.data.iris()

# 初始化JupyterDash应用——完全本地,无需云端连接
app = JupyterDash(__name__)

# 定义仪表盘的布局:标题+下拉框+图表
app.layout = html.Div([
    html.H1("本地离线鸢尾花数据集仪表盘"),
    dcc.Dropdown(
        id='species-selector',
        options=[{'label': species, 'value': species} for species in df['species'].unique()],
        value='setosa'  # 默认选中值
    ),
    dcc.Graph(id='scatter-plot')
])

# 定义交互回调:下拉框选择变化时更新图表
@app.callback(
    Output('scatter-plot', 'figure'),
    Input('species-selector', 'value')
)
def update_plot(selected_species):
    filtered_data = df[df['species'] == selected_species]
    fig = px.scatter(filtered_data, x='sepal_length', y='sepal_width', color='species')
    return fig

# 在Notebook里运行应用:inline模式直接嵌入单元格,external模式在本地浏览器打开
app.run_server(mode='inline')

关键说明

  • JupyterDash完全适配Notebook环境,运行时会启动一个本地小服务器,所有交互都在本地处理,不会向Plotly云端发送任何请求。
  • 你可以自由添加滑块、按钮、表格等组件,打造复杂的交互式仪表盘,全程离线。

方案二:用Plotly子图组合静态仪表盘(适合简单场景)

如果不需要复杂的交互组件,只是想把多个Plotly图表组合成类似仪表盘的布局,直接用plotly.subplots就可以,同样完全离线:

import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px

df = px.data.iris()

# 创建2x2的子图布局
fig = make_subplots(
    rows=2, cols=2,
    subplot_titles=("花萼长度分布", "花萼宽度分布", "花瓣长度分布", "花瓣宽度分布")
)

# 逐个添加图表到子图
fig.add_trace(go.Histogram(x=df['sepal_length'], nbinsx=10), row=1, col=1)
fig.add_trace(go.Histogram(x=df['sepal_width'], nbinsx=10), row=1, col=2)
fig.add_trace(go.Histogram(x=df['petal_length'], nbinsx=10), row=2, col=1)
fig.add_trace(go.Histogram(x=df['petal_width'], nbinsx=10), row=2, col=2)

# 调整整体布局样式
fig.update_layout(
    height=600, width=800,
    title_text="鸢尾花数据集统计仪表盘",
    showlegend=False
)

# 在Notebook里直接显示图表
fig.show()

这种方式适合快速把多个可视化结果整合在一起,没有额外的交互逻辑,同样不需要依赖Plotly云端账号。

总结

  • 想要完整交互式仪表盘:用JupyterDash,本地运行,支持各种组件交互,完全离线。
  • 想要简单多图表组合:用plotly.subplots,直接在Notebook里显示静态组合仪表盘。
  • 避开Plotly官网的Dashboard API(那个是专门用于创建云端共享仪表盘的),上面两种方案完全满足你“无需上传至个人Plotly账号”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:18:30