如何将Jupyter单元格输出的多幅图表拆分到多个Reveal幻灯片中
解决方案
方案1:拆分单图到独立幻灯片(效果最优)
你当前所有对比图都输出在同一个Matplotlib画布上,导出后是单张超长图片,自然只能放在同一页幻灯片中。调整绘图逻辑,将每对特征的对比图单独生成画布,再配合Jupyter幻灯片单元格配置,即可实现每张对比图单独占一页幻灯片,全尺寸显示无滚动:
- 调整绘图代码:
%matplotlib inline import matplotlib.pyplot as plt import numpy as np from itertools import combinations fruit_data = np.random.randn(500,5) fruit_names = ['Apples', 'Bananas', 'Oranges', 'Mangoes', 'Kiwis'] def plot_data(data, labels): n_series = data.shape[1] plot_index = list(combinations(np.arange(n_series), 2)) for plot in plot_index: # 每对特征单独创建画布 fig, ax = plt.subplots(figsize=(12,5)) ax.scatter(data[:, plot[0]], data[:, plot[1]]) ax.set_xlabel(labels[plot[0]]) ax.set_ylabel(labels[plot[1]]) plt.show() # 强制输出当前画布,避免合并 plot_data(fruit_data, fruit_names)
- 配置单元格幻灯片属性:
在Jupyter界面顶部菜单栏选择「视图」→「单元格工具栏」→「幻灯片」,每个生成单图的单元格右侧下拉框选择「幻灯片」类型,导出后每张图自动生成独立幻灯片页面。 - 导出命令去掉滚动参数即可:
jupyter nbconvert my_notebook.ipynb --to slides --post serve
方案2:优化单页滚动显示效果
如果需要保留单页所有内容的展示形式,可以自定义CSS优化滚动体验:
- 新建
custom.css文件,添加如下样式:
.reveal .slides section { overflow-y: auto; max-height: 85vh; padding-right: 10px; } /* 适配不同浏览器的滚动条样式 */ .reveal .slides section::-webkit-scrollbar { width: 6px; } .reveal .slides section::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
- 导出时引用自定义CSS:
jupyter nbconvert my_notebook.ipynb --to slides --post serve --SlidesExporter.reveal_scroll=True --SlidesExporter.css_files=custom.css
方案3:分组展示减少单页内容
如果不需要每张图单独占一页,可以按特征相关性分组,每页放2-3张对比图,调整单张图高度,平衡尺寸和展示密度,避免页面溢出。

内容的提问来源于stack exchange,提问作者phollox
相关产品推荐
相关产品推荐

