如何用VS Code导出含Plotly图表的Jupyter Notebook为HTML且隐藏代码?
解决IPython Notebook导出HTML时隐藏代码且Plotly图表正常渲染的问题
核心问题分析
你遇到的矛盾本质是:Plotly交互式图表依赖输出单元格中嵌入的JavaScript资源,VS Code导出能保留这些资源但会显示代码;命令行--no-input参数能隐藏代码,但如果未确保输出包含Plotly的JS资源,就会导致图表无法渲染。
可行解决方案
方案1:预先配置Plotly渲染模式+命令行导出
- 在Notebook开头添加并运行以下代码,确保Plotly输出嵌入离线JS资源:
import plotly.io as pio pio.renderers.default = 'notebook'
- 重新运行所有包含Plotly图表的单元格,确认图表正常显示(此时输出单元格已包含Plotly的JS代码)。
- 执行命令行导出:
jupyter nbconvert --to html --no-input file.ipynb
该命令会隐藏所有代码单元格,同时保留包含JS资源的输出单元格,确保Plotly图表能正常渲染。
方案2:一键执行+导出(适合未预先运行的Notebook)
如果Notebook尚未运行,可直接用以下命令完成「执行Notebook→隐藏代码→导出HTML」全流程:
jupyter nbconvert --to html --no-input --execute file.ipynb
--execute参数会先运行所有单元格生成正确的Plotly输出,再结合--no-input隐藏代码,最终导出的HTML同时满足两个需求。
方案3:VS Code扩展辅助实现
若偏好使用VS Code的导出功能,可安装Jupyter Hide Code扩展:
- 安装后,用扩展功能隐藏Notebook中所有代码单元格
- 保持
pio.renderers.default='notebook'配置并运行过单元格 - 再使用VS Code自带的「Jupyter:Export to HTML」功能导出,即可得到无代码且Plotly图表正常渲染的HTML文件
注意:你之前使用的
--WebPDFExporter.embed_images=True参数仅适用于PDF导出,对HTML无效,无需添加。
内容的提问来源于stack exchange,提问作者seblon
相关产品推荐
相关产品推荐

