在jupyter笔记本中崩溃细胞

问题描述 投票:88回答:8

我正在使用ipython Jupyter笔记本。假设我定义了一个在屏幕上占用大量空间的函数。有没有办法折叠细胞?

我希望函数保持执行和可调用,但我想隐藏/折叠单元格以便更好地可视化笔记本。我怎样才能做到这一点?

python ipython ipython-notebook jupyter
8个回答
54
投票

jupyter contrib nbextensions Python包中包含可在笔记本中启用的代码折叠扩展。请点击链接(Github)获取文档。

要使用命令行安装:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

为了让生活更轻松,我还推荐使用jupyter nbextensions configurator包。这为您的Notebook界面提供了一个额外的选项卡,您可以从中轻松(de)激活所有已安装的扩展。

安装:

pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

21
投票

您可以创建一个单元格并将以下代码放入其中:

%%html
<style>
div.input {
    display:none;
}
</style>

运行此单元格将隐藏所有输入单元格。要显示它们,您可以使用菜单清除所有输出。

否则你可以尝试下面的笔记本扩展:

https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/Home_3x


13
投票

JupyterLab支持细胞塌陷。单击左侧的蓝色单元格栏将折叠单元格。 enter image description here


11
投票

我遇到了类似的问题,@ Energya指出的“nbextensions”工作得非常好,毫不费力。安装说明很简单(我在Windows上尝试使用anaconda)for the notebook extensionsfor their configurator

也就是说,我想补充一点,以下扩展应该是有意义的。

  • 隐藏输入|此扩展允许在笔记本中隐藏单个代码单元。这可以通过单击工具栏按钮来实现:Hide Input
  • 可折叠标题|允许笔记本具有可折叠部分,由标题Collapsible Headings分隔
  • 代码折叠|这已被提及,但我添加它为完整性Codefolding

9
投票

在〜/ .jupyter / custom /中创建custom.js文件,内容如下:

$("<style type='text/css'> .cell.code_cell.collapse { max-height:30px; overflow:hidden;} </style>").appendTo("head");
$('.prompt.input_prompt').on('click', function(event) {
    console.log("CLICKED", arguments)   
    var c = $(event.target.closest('.cell.code_cell'))
    if(c.hasClass('collapse')) {
        c.removeClass('collapse');
    } else {
        c.addClass('collapse');
    }
});

保存后,重新启动服务器并刷新笔记本。您可以通过单击输入标签(In [])来折叠任何单元格。


8
投票

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

pip3 install hide_code

有关此扩展程序的更多信息,请访问https://github.com/kirbs-/hide_code/


7
投票

首先,按照Energya的指示:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

第二个关键:打开jupiter笔记本后,单击Nbextension选项卡。现在从Nbextension提供的搜索工具(而不是通过网络浏览器)搜索“colla”,然后你会发现一个叫做“可折叠标题”的东西

这就是你想要的!


1
投票

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

%%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>"""))
© www.soinside.com 2019 - 2024. All rights reserved.