Jupyter Notebook中Plotly用iframe渲染时如何避免生成HTML文件?
解决Plotly在Jupyter Notebook中生成多余HTML文件的问题
核心原因
设置pio.renderers.default = "iframe"时,Plotly会将图表导出为本地HTML文件再嵌入Notebook,因此产生3-4MB的额外文件。以下是无需生成额外文件的替代方案:
方案1:替换为原生Notebook渲染器
直接将渲染器改为notebook_connected或notebook,这两种方式都不会生成单独的HTML文件:
修改配置代码如下:
import plotly.io as pio import plotly.graph_objects as go from plotly.subplots import make_subplots # 优先使用CDN加载资源,无额外文件生成(需联网) pio.renderers.default = "notebook_connected" # 若需离线使用,可改为(JS代码嵌入Notebook,无额外文件,但Notebook体积会增加) # pio.renderers.default = "notebook"
两种渲染器的区别:
notebook_connected:通过CDN加载Plotly的JavaScript库,Notebook本身体积小,无额外文件,依赖网络。notebook:将Plotly的JS代码嵌入Notebook,无需联网,但Notebook文件会增大几MB。
方案2:升级依赖包解决兼容性问题
如果默认渲染器失效,大概率是Plotly与Jupyter环境版本不兼容。升级相关包后,默认渲染器(如plotly_mimetype)即可正常工作,无需手动设置iframe:
执行升级命令(pip环境):
pip install --upgrade plotly ipywidgets jupyterlab
conda环境:
conda update plotly ipywidgets jupyterlab
方案3:针对Jupyter Lab的优化
若使用Jupyter Lab,确保安装Plotly官方扩展,获得更流畅的原生渲染体验:
jupyter labextension install jupyterlab-plotly
安装完成后,设置渲染器为plotly_mimetype:
pio.renderers.default = "plotly_mimetype"
验证配置
修改完成后,运行你的绘图代码,即可正常渲染图表且不会生成额外的HTML文件。
内容的提问来源于stack exchange,提问作者Pratik Ghodke
相关产品推荐
相关产品推荐

