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

如何在Jupyter Notebook中显示Plotly生成的HTML文件?

解决Jupyter Notebook中显示Plotly HTML片段的"Plotly is not defined"错误

问题原因

你生成HTML时使用了full_html=False和include_plotlyjs='cdn',得到的是仅包含图表渲染逻辑的代码片段,没有完整的HTML结构(如<head>中的CDN引用)。Chrome浏览器打开时会自动补全基础HTML结构并加载CDN资源,但Jupyter的HTML组件不会自动处理外部CDN的加载,导致渲染时找不到Plotly对象。

解决方法

方法1:修改HTML生成逻辑,内嵌Plotly.js

将include_plotlyjs设为True(直接内嵌Plotly.js到HTML片段),这样生成的文件无需依赖外部CDN,直接在Jupyter中即可渲染:

import plotly.express as px

fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])
# 内嵌Plotly.js到HTML片段
fig.write_html("px.html", full_html=False, include_plotlyjs=True)

之后继续使用原来的代码显示即可:

from IPython.display import display, HTML
display(HTML(filename="px.html"))

方法2:在Jupyter中手动加载Plotly.js CDN

如果不想修改已生成的HTML文件,可以先在Notebook中加载CDN的Plotly.js,再显示HTML片段:

from IPython.display import display, HTML
# 先加载Plotly.js的CDN资源
display(HTML('<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>'))
# 再显示目标HTML文件
display(HTML(filename="px.html"))

方法3:用IFrame加载完整HTML文件

如果生成HTML时改为full_html=True(生成完整的HTML页面),可以用IFrame直接嵌入显示:

# 先重新生成完整HTML文件
import plotly.express as px
fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])
fig.write_html("px_full.html", full_html=True, include_plotlyjs='cdn')

# 在Notebook中用IFrame显示
from IPython.display import IFrame
IFrame(src="px_full.html", width=800, height=600)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:43:21