web-dev-qa-db-ja.com

Jupyterノートブックのセルを折りたたむ

Ipython Jupyterノートブックを使用しています。画面上で多くのスペースを占有する関数を定義したとしましょう。セルを折りたたむ方法はありますか?

関数を実行したまま呼び出し可能のままにしておきたいのですが、ノートブックをよりよく視覚化するために、セルを非表示/折りたたみます。これどうやってするの?

92
aloha

jupyter contrib nbextensions Pythonパッケージには、ノートブック内で有効にできるコード折りたたみ拡張機能が含まれています。ドキュメントについては、リンク(Github)に従ってください。

コマンドラインを使用してインストールするには:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

それらを管理しやすくするために、 jupyter nbextensions configurator パッケージもお勧めします。これにより、インストール済みのすべての拡張機能を簡単に(非)アクティブ化できるノートブックインターフェイスに追加のタブが提供されます。

インストール:

pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
58
Energya

セルを作成し、次のコードをセルに挿入できます。

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

このセルを実行すると、すべての入力セルが非表示になります。それらを表示するには、メニューを使用してすべての出力をクリアします。

それ以外の場合は、次のようなノートブック拡張機能を試すことができます。

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

21
Pan Yan

JupyterLab はセルの折りたたみをサポートします。左側の青いセルバーをクリックすると、セルが折り畳まれます。 enter image description here

15
intsco

私も同様の問題を抱えていましたが、@ Energyaが指摘した「nbextensions」は非常にうまく機能しました。インストール手順は簡単です(Windowsのanacondaで試しました) ノートブック拡張機能の場合 および コンフィギュレーターの場合

そうは言っても、次の拡張機能に関心があると付け加えたいと思います。

  • 入力を隠す|この拡張により、ノートブック内の個々のコードセルを隠すことができます。これは、ツールバーボタンをクリックすることで実現できます。 Hide Input

  • 折りたたみ可能な見出し|ノートブックで折りたためるセクションを見出しで区切ることができます Collapsible Headings

  • コード折りたたみ|これは言及されていますが、完全を期すために追加します Codefolding

13

〜/ .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 [])をクリックして、セルを折りたたむことができます。

9
Sundar

Hide_code拡張機能を使用すると、個々のセルやその隣のプロンプトを非表示にできます。としてインストール

pip3 install hide_code

この拡張機能の詳細については、 https://github.com/kirbs-/hide_code/ にアクセスしてください。

8
Linas

まず、Energyaの指示に従ってください。

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

2番目のキー: Jupiter Notebookを開いた後、[Nbextension]タブをクリックします。今Nbextensionが提供する検索ツールから「colla」を検索します(Webブラウザではありません)

これはあなたが望むものです!

7
user40780

パンヤンの提案の改善されたバージョンもあります。コードセルを表示するボタンを追加します。

%%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>"""))
1

拡張機能を有効にする場合を除き、多くのことを行う必要はありません。

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

enter image description here

最も可能性が高いのは、すべての拡張機能がここにあることです。

http://localhost:8888/nbextensions

enter image description here

1
prosti