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

使用nbconvert导出Jupyter幻灯片时实现Plotly图表全屏显示

解决Plotly图表填满nbconvert导出的Reveal幻灯片问题

方法一:在Notebook内添加自定义CSS(快速生效)

在你的Notebook里新增一个Markdown单元格,插入以下CSS代码,专门针对幻灯片模式下的图表容器:

<style>
@media screen and (min-width: 992px) {
  /* 修改幻灯片模式下的输出区域样式 */
  .reveal .slide .output_area {
    height: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* 强制Plotly图表容器占满整个幻灯片 */
  .reveal .slide .js-plotly-plot {
    height: 100vh !important;
    width: 100vw !important;
  }
  /* 移除滚动条 */
  .reveal .slide .output_scroll {
    overflow: hidden !important;
  }
}
</style>

然后修改Plotly代码,让图表自适应容器并移除默认边距:

import plotly.express as px
fig = px.scatter(x=[0,1],y=[0,1])
# 开启自适应+移除图表内外边距
fig.update_layout(
    autosize=True,
    margin=dict(l=0, r=0, t=0, b=0),
    paper_bgcolor='rgba(0,0,0,0)',
    plot_bgcolor='rgba(0,0,0,0)'
)
fig.show()

最后执行你的导出命令:

jupyter nbconvert minimal_notebook.ipynb --to slides --post serve --no-input --no-prompt

方法二:修改Reveal.js模板文件(全局生效)

如果需要所有导出的幻灯片都应用该设置,可修改nbconvert的默认模板:

  • 先在终端执行以下命令找到模板目录:
jupyter --data-dir

模板通常位于{上述命令返回的路径}/nbconvert/templates/reveal下。

  • 打开模板文件(如reveal.tpl或index.html,依版本而定),在<head>标签内添加方法一中的CSS代码。
  • 保存后再执行导出命令,所有幻灯片都会自动应用该样式。

关键说明

只调整Plotly图表尺寸无效的核心原因:nbconvert导出的幻灯片中,单元格输出区域(output_area)有默认的宽高限制和内边距,必须先修改这个容器的样式,再配合图表的自适应设置,才能让图表完全填满幻灯片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:13:16