我有一个jupyter笔记本,正在使用以下方式将其转换为幻灯片显示:
jupyter nbconvert notebook.ipynb --to slides --post serve --SlidesExporter.reveal_scroll=True
某些幻灯片包含一个代码段,其中有一个数字作为输出。此刻,该图从屏幕底部消失。因为这是幻灯片的主要目的,所以有一种方法可以启用滚动(我认为--SlidesExporter.reveal_scroll=True
应该这样做,但是在我的情况下不起作用-没有滚动条出现)。还是有一种方法可以将输入和输出分成两张幻灯片,或者隐藏输入代码并仅显示输出图形。
代码单元太长的示例如下:
import numpy as np
import matplotlib.pyplot as plt
t=np.linspace(0,1,1000)
Sr=np.exp(1j*t*(15)*2*np.pi)* np.exp(-5 *t)
#Trial wavefunctions
#Frequency (Hz)
f=[5,10,15,20]
y=np.cos(f[0]*2*np.pi*t)
#Multiply the signal with our trial cosine function
S_cos = np.real(Sr)*y
#Integrate the signal (using Simpson's rule for numerical integration)
from scipy.integrate import simps
area=np.empty([4,])
area[0] = simps(S_cos,dx=1)
print('Area under product function = %.1f' %area[0])
#Plot the real part of the signal
plt.figure(figsize=(14,6))
plt.subplot(1,2,1)
plt.plot(t,np.real(Sr),label='Signal')
plt.plot(t,y,label='Trial cosine')
plt.xlabel('Time (s)')
plt.ylabel('Intensity')
plt.legend()
plt.subplot(1,2,2)
plt.plot(t,S_cos, 'g', label='Product (signal*trial cosine)')
plt.xlabel('Time (s)')
plt.ylabel('Intensity')
plt.legend()
plt.show()
答案 0 :(得分:2)
nbconvert的一位贡献者制作了一个模板,该模板可以隐藏幻灯片中的输入代码。
将以下代码另存为output_toggle.tpl,并将其与.ipynb文件一起放置在文件夹中。准备就绪后,只需运行:jupyter nbconvert notebook.ipynb --to slides --post serve --template output_toggle
{# Jupyter Notebook Toggle Template for Slides by Damian Avila
from http://www.damian.oquanta.info/posts/hide-the-input-cells-from-your-ipython-slides.html
#}
{%- extends 'slides_reveal.tpl' -%}
{% block input_group -%}
<div class="input_hidden">
{{ super() }}
</div>
{% endblock input_group %}
{%- block header -%}
{{ super() }}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style type="text/css">
.input_hidden {
display: none;
// margin-top: 5px;
}
</style>
<script>
$(document).ready(function(){
$(".output_wrapper").click(function(){
$(this).prev('.input_hidden').slideToggle();
});
})
</script>
{%- endblock header -%}
如果需要在演示时显示代码,则可以单击输出以显示输入单元格。