2015-10-15 99 views
38

私はipython Jupyterノートブックを使用しています。私の画面上にたくさんのスペースを占める関数を定義したとしましょう。細胞を崩壊させる方法はありますか?jupyterノートブックの崩壊セル

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

+2

うわー、それはすでに2017で、ノートブックの拡張子は本当に良いです – user1700890

答えて

10

あなたは、セルを作成し、その中に以下のコードを置くことができます。

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

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

そうしないと、以下のようなノートブックの拡張機能を試すことができます。

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

+0

簡単な解決策はありません。あまりにも多くのことがあります。 https://github.com/ipython-contrib/jupyter_contrib_nbextensions – shahensha

6

は、以下の内容で/〜/ .jupyter /カスタム内のファイル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'); 
    } 
}); 

を、再起動を保存した後サーバを再起動してノートブックをリフレッシュします。入力ラベル([]内)をクリックすると、セルを折りたたむことができます。

+2

これは、jsが実行されたときに、変更されるdivがロードされていないため、私にとってはうまくいかなかった。しかし、これはsetTimeout(function(){...}、3000)のすべてをラップすることで修正できます。 – Steohan

+0

ありがとう@Steohan。それが助けになりました。 – shahensha

+1

これは、第四にラインを変更した後、私の仕事: 'VARのC = $(event.target).closest( 'cell.code_cell')' とのsetTimeoutですべてをラップするSteohanの提案を以下に示します。 – proteome

23

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 
+4

クールなものですが、私は "コードフォールディング" nbextensionがコードブロックだけでなく、セル全体を折りたたみたいと思っています。 – bsmith89

+0

私はGithubのリンク – user2110239

+2

で説明されているように拡張ツリーを取得できません。誰かがcondaでインストールの問題に遭遇した場合、 'pip install jupyter_contrib_nbextensions'を実行してください。 ' jupyter contrib nbextensions install --sys-prefix --skip-running-check '。私はjupyterがデフォルトでこのパッケージを持っていることを望みます。 – user1700890

5

hide_code拡張子を使用して、個々のセルを非表示にすることができ、および/または横にプロンプ​​ト。この拡張機能の詳細については、

pip3 install hide_code 

訪問https://github.com/kirbs-/hide_code/を参照してください。 、木星のノートブックを開いた後をNbextension]タブをクリックします。

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

第二には、キーです:

2

まず、Energyaの指示に従ってください。今すぐNbextension(Webブラウザではない)で提供されている検索ツールから「colla」を検索すると、「Collapsible Headings」と呼ばれるものが見つかります。

これはあなたの望みです!

0

パンヤンの提案の改良版もあります。これは、バックコード細胞を示し、ボタンを追加します。

%%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>""")) 
関連する問題