Plotly图表在Jupyter转换的HTML中不显示,如何加载远程Plotly.js?
解决Plotly图表在nbconvert生成的HTML中加载本地JS失败的问题
方案1:在Notebook中提前配置Plotly使用CDN渲染
在你的Jupyter Notebook开头添加以下代码,强制Plotly生成引用远程CDN的代码,这样转HTML时就不会依赖本地的plotly.js:
import plotly # 启用联网模式,让Plotly使用CDN资源 plotly.offline.init_notebook_mode(connected=True) # 指定渲染器为联网版notebook模式 plotly.io.renderers.default = 'notebook_connected'
执行这段代码后再运行绘图单元格,之后用jupyter nbconvert --to html --no-input main.ipynb转换,生成的HTML会自动引用CDN上的Plotly.js,不会再尝试加载本地文件。
方案2:修改nbconvert的全局配置
如果需要所有Notebook转HTML都默认用CDN,可以修改Jupyter的nbconvert配置:
- 生成配置文件(如果还没有):
jupyter nbconvert --generate-config
- 打开生成的
jupyter_nbconvert_config.py,添加以下配置项:
# 配置require.js的CDN地址(保持默认也可,这里明确指定) c.HTMLExporter.require_js_url = "https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js" # 给require.js添加Plotly的CDN路径映射 c.HTMLExporter.extra_require_paths = { "plotly": "https://cdn.plot.ly/plotly-2.18.0.min.js" }
保存配置后,再执行转换命令,生成的HTML会自动让require.js从CDN加载Plotly.js。
方案3:转换后手动修改HTML的require配置
如果不想修改Notebook或全局配置,可以在转换后的HTML文件中,找到<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>这一行,在它之前添加一段配置代码,告诉require.js从CDN加载plotly:
<script> require.config({ paths: { 'plotly': 'https://cdn.plot.ly/plotly-2.18.0.min' } }); </script>
这段代码会覆盖默认的本地路径配置,让require.js直接请求CDN上的Plotly.js文件。
内容的提问来源于stack exchange,提问作者Dean MacGregor
相关产品推荐
相关产品推荐

