Colab中ipynb转HTML后Plotly饼图无法显示求助
解决Colab中Plotly饼图转HTML后不显示的问题
问题核心是Colab里fig.show()采用平台专属的渲染逻辑,导出HTML时未包含Plotly图表必需的JavaScript依赖,导致图表无法加载。以下是几种可行的解决方法:
方法一:在Notebook中嵌入HTML格式的图表
替换原代码中的fig.show(),改用to_html()生成完整的可嵌入HTML内容,确保nbconvert转换时将图表的所有依赖都包含进去:
import plotly.express as px from IPython.display import HTML Labels=['No', 'Ex-fumatore', 'Fumatore'] values=[1838, 1293, 574] fig=px.pie(values = values,names = Labels,hole=.5,title = "Tipologie fumatori In Percentuale") # 生成并显示HTML格式的图表 HTML(fig.to_html())
之后执行!jupyter nbconvert --to html /content/pie.ipynb,导出的HTML就能正常显示饼图。
方法二:用nbconvert参数强制完整渲染
如果不想修改代码,可在转换时添加--execute参数,强制Notebook重新执行并生成可导出的图表内容,还能加--no-input隐藏代码块:
!jupyter nbconvert --to html --execute /content/pie.ipynb --no-input
方法三:启用Plotly离线模式
初始化Plotly离线模式,让图表依赖本地嵌入的JS资源,避免绑定Colab的在线环境:
import plotly.offline as pyo import plotly.express as px # 初始化离线模式 pyo.init_notebook_mode(connected=True) Labels=['No', 'Ex-fumatore', 'Fumatore'] values=[1838, 1293, 574] fig=px.pie(values = values,names = Labels,hole=.5,title = "Tipologie fumatori In Percentuale") fig.show(renderer='notebook')
执行完代码后再导出HTML,图表即可正常显示。
内容的提问来源于stack exchange,提问作者Francesca Pisani
相关产品推荐
相关产品推荐

