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

从命令行运行Jupyter Notebook后Plotly图表空白问题求助

解决Jupyter nbconvert执行后Plotly图表空白的问题

我来帮你捋捋这个Plotly图表空白的问题,结合你用jupyter nbconvert --inplace --execute批量执行笔记本的场景,有几个针对性的解决思路:

1. 调整Plotly离线初始化配置,强制本地嵌入资源

你当前用的init_notebook_mode(connected=True)会尝试加载在线的Plotly JS资源,但在nbconvert执行过程中,可能因为网络或环境限制无法正确获取这些资源,导致图表输出不完整。试试改成本地嵌入模式:

init_notebook_mode(connected=False)

这样会把Plotly的JS资源直接嵌入到笔记本输出中,不需要依赖在线连接,更适合非交互式的执行场景。

2. 替换iplot为fig.show()(Plotly 4.x+推荐用法)

从Plotly 4版本开始,官方更推荐用fig.show()代替offline.iplot,尤其是在Jupyter环境中。你可以把代码里的iplot(fig)改成:

fig.show(renderer='notebook')

这个渲染器会专门针对Jupyter笔记本生成兼容的输出,能更好地被nbconvert保存和后续在界面中显示。

3. 检查nbconvert执行时的隐藏错误

有时候nbconvert执行过程中出现的警告或错误不会直接显示,导致图表生成失败。你可以在执行命令时加上--allow-errors参数,让错误信息保留在笔记本里:

jupyter nbconvert --inplace --execute --allow-errors myNotebook.ipynb

打开笔记本后查看代码块的输出,看看有没有Plotly相关的报错(比如资源加载失败、渲染超时等)。

4. 更新依赖版本排除兼容性问题

旧版本的nbconvert或plotly可能存在处理交互式图表的bug,试试更新到最新版本:

pip install --upgrade jupyter nbconvert plotly

更新后再重新执行笔记本,看问题是否解决。

5. 验证手动执行是否正常

先在Jupyter界面手动运行所有单元格,确认图表能正常显示。如果手动运行没问题,但nbconvert执行后空白,那大概率是nbconvert的执行环境和交互式界面环境不一致。这时候可以尝试在命令中指定使用和Jupyter相同的内核:

jupyter nbconvert --inplace --execute --to notebook --ExecutePreprocessor.kernel_name=python3 myNotebook.ipynb

(把python3换成你实际使用的内核名称)

修改后的示例代码

import pandas as pd
import plotly
from plotly.offline import init_notebook_mode
import plotly.graph_objects as go
from datetime import datetime

# 切换为本地嵌入模式
init_notebook_mode(connected=False)

df = pd.DataFrame({'one' : pd.Series([10, 20, 30, 40]),'two' : pd.Series([10, 20, 30, 40])})
fig = go.Figure()
fig.add_trace(go.Scatter(x=df.one,y=df.two))
fig.update_layout(xaxis_range=[min(df.one),max(df.one)])

# 使用notebook渲染器显示图表
fig.show(renderer='notebook')
print(datetime.now())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:39:13