使用 to_hmtl 方法从绘图创建 html 时,使用 JupyterLab 时可以使用 display(HTML(x)) 正确显示生成的 html,但使用 Jupyter Notebook 时无法正确显示(不显示任何内容)。
此外,当尝试使用 nbconvert 将 Jupyter Lab 笔记本导出到 hmtl 时,生成的 html 中未正确显示绘图(尽管它们在 JupyterLab 笔记本中正确呈现)
Python代码
# Import libraries
import plotly.graph_objs as go
from IPython.display import HTML, display
# Sample data
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# Create trace and figure
trace = go.Scatter(x=x, y=y)
fig = go.Figure(data=[trace])
# Generate html figure
html_fig = fig.to_html()
# Display the html figure (Works in JupyterLab. Does not work in Jupyter Notebook)
display(HTML(data=html_fig))
将 Notebook 转换为 html 的终端代码
jupyter nbconvert --to html PlotlyToHtml.ipynb
版本
我尝试过(没有成功)
import plotly.io as pio
pio.renderers.default="notebook" # jupyterlab, vscode, ...
html_fig_modified = (
"""<iframe sandbox='allow-scripts allow-forms' style='display:block; margin:0px;' frameborder='0' srcdoc='
<!DOCTYPE html>"""
+ html_fig
+ """ />"""
)
HTML(html_fig_modified)
import holoviews as hv
hv.extension("plotly")
from plotly.offline import init_notebook_mode
init_notebook_mode(connected=True)
我也有同样的行为。我查看了情节代码,他们似乎非常意识到这一点。
.show
方法似乎编写了一个临时html文件,然后使用显示的iframe html代码来可视化临时文件。