我用的是ipython Jupyter笔记本。假设我定义了一个函数,它在屏幕上占据了很大的空间。有办法让细胞崩溃吗?

我希望函数保持执行和可调用,但我想隐藏/折叠单元格,以便更好地可视化笔记本。我该怎么做呢?


当前回答

JupyterLab支持细胞折叠。单击左侧的蓝色单元格条将折叠单元格。

其他回答

还有一个潘岩建议的改进版本。它添加了显示代码单元格的按钮:

%%html
<style id=hide>div.input{display:none;}</style>
<button type="button" 
onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">
Show inputs</button>

或python:

# Run me to hide code cells

from IPython.core.display import display, HTML
display(HTML(r"""<style id=hide>div.input{display:none;}</style><button type="button"onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">Show inputs</button>"""))

这个问题有很多答案,我觉得所有的答案都不令人满意(有些比其他的多),在许多扩展中-代码折叠,按标题折叠等等。没有人能简单有效地做我想要的事情。我真的很惊讶,一个解决方案还没有实现(因为它已经为Jupyter实验室)。

事实上,我非常不满意,以至于我开发了一个非常简单的笔记本扩展,可以在笔记本单元格中展开/折叠代码,同时保持它的可执行性。

GitHub存储库:https://github.com/BenedictWilkinsAI/cellfolding

下面是扩展的一个小演示:

只需双击左边的代码单元格,就可以将其折叠成一行:

再次双击将展开单元格。

扩展可以轻松安装与pip:

pip install nbextension-cellfolding
jupyter nbextension install --py cellfolding --user
jupyter nbextension enable --py cellfolding --user 

并且也与nbeextension配置器兼容。我希望人们会发现这有用!

hide_code扩展允许您隐藏单个单元格和/或它们旁边的提示符。安装

pip3 install hide_code

访问https://github.com/kirbs-/hide_code/了解有关此扩展的更多信息。

你不需要做太多,除了启用扩展:

http://localhost:8888/nbextensions?nbextension=collapsible_headings
http://localhost:8888/nbextensions?nbextension=codefolding/main

很可能你会在这里找到你所有的扩展:

http://localhost:8888/nbextensions

我也遇到过类似的问题,@Energya指出的“nbextensions”工作得非常好,毫不费力。笔记本扩展及其配置器的安装说明非常简单(我尝试在Windows上使用anaconda)。

也就是说,我想补充的是,以下扩展应该是感兴趣的。

隐藏输入| 这个扩展允许在笔记本中隐藏一个单独的码息。这可以通过点击工具栏按钮来实现: 可折叠的标题|允许笔记本有可折叠的部分,由标题分开 代码折叠|这已经提到,但我添加它的完整性