ipython - setup - nbextensions zenmode




IPython Notebookで特定の1つのセル(入力または出力)を非表示にする方法は? (6)

IPythonノートブックで特定の入力または出力セルを選択的に非表示にする方法はありますか?

私はすべての入力セルを表示/非表示するための以下のコードしか見つけることができませんでした。

http://blog.nextgenetics.net/?e=102

しかし、ノートブックの最初の入力セルだけを隠したいのであればどうしますか?


@Mathmagicianのソリューションはほぼ完璧ですが、多くの副作用があります。

もっと正確には次のようになります:

from IPython.core.display import display, HTML
toggle_code_str = '''
<form action="javascript:code_toggle()"><input type="submit" id="toggleButton" value="Toggle Code"></form>
'''

toggle_code_prepare_str = '''
    <script>
    function code_toggle() {
        if ($('div.cell.code_cell.rendered.selected div.input').css('display')!='none'){
            $('div.cell.code_cell.rendered.selected div.input').hide();
        } else {
            $('div.cell.code_cell.rendered.selected div.input').show();
        }
    }
    </script>

'''

display(HTML(toggle_code_prepare_str + toggle_code_str))

def toggle_code():
    display(HTML(toggle_code_str))

呼び出しtoggle_codeは、他のコードの前にあるコードセルに置かれる可能性があります。したがって、セル内のコードがゆっくり実行されると、副作用は発生しません。 また、 Run CellsとSelect / Insert Belowの問題を解決します

トグルボタンを追加しますが、初期状態を管理することはできません


ここでは、セルのメタデータのみを編集してHTML / PDF出力からセルを非表示にする方法があります。

私が使用しているバージョン:

$ jupyter notebook --version

4.1.0

$ jupyter nbconvert --version

4.2.0

  1. ipiththonノートブックの拡張テンプレートをダウンロードするには、Githubのインストール手順をhttps://github.com/ipython-contrib/IPython-notebook-extensions/tarball/master 。pip install https://github.com/ipython-contrib/IPython-notebook-extensions/tarball/master
    • これはローカルのjupyterデータディレクトリにファイルをインストールするだけです。 readmeの詳細
  2. jupyter notebook走らせる
  3. localhost:8888/nbextensions (またはあなたが始めたポート)にPrintviewを有効にしてPrintview
  4. localhost:8888/treeに戻って、新しいノートブックを作成してそれに入ります
  5. 出力を生成するコードをいくつか含むコードセルを作成するprint("You can see me") #but not me
  6. View > Cell Toolbar > Edit Metadata
  7. セルの右上に表示されている[ Edit MetadataEdit Metadata ]ボタンをクリックします
  8. 'hide_input':True追加して'hide_input':True jsonのように'hide_input':True例えば、 { "collapsed": false, "hide_input": true, "trusted": true }ように見え{ "collapsed": false, "hide_input": true, "trusted": true }
  9. ノートブックを保存する
  10. ターミナルに戻り、 jupyter nbconvert --to pdf --template printviewlatex.tplx notebookname.ipynbを実行しjupyter nbconvert --to pdf --template printviewlatex.tplx notebookname.ipynb (ノートブック名がnotebookname.ipynb.ipynb

これで、ディレクトリにnotebookname.pdfという名前の文書があるはずです。 うまくいけば、それはYou can see meがそれをYou can see meテキストだけを持っているはずです...指が交差しました。


これはタグを使用してnbconvert( 5.3.0時点 )に組み込まれています。

次に、特定のセルを出力から削除する例を示します。 このノートブックを使用する 。 この例では、マークダウンセル、非表示にするコードセル、および非表示にしないコードセルの3つのセルがあります。

  1. ノートブックまたはJupyterLabに組み込まれているタグエディタを使用して、非表示にしたいセルにremove_cellタグを追加します(特定の名前「remove_cell」は関係ありません)
  2. nbconvertで変換する

    jupyter nbconvert nbconvert-example.ipynb --TagRemovePreprocessor.remove_cell_tags='{"remove_cell"}'

タグremove_cellを持つセルはすべて出力から削除されます。

セル全体に加えて、入力または出力だけをフィルタリングすることができます。

  • TagRemovePreprocessor.remove_input_tags
  • TagRemovePreprocessor.remove_single_output_tags
  • TagRemovePreprocessor.remove_all_outputs_tags

すべての入力セルを隠すためのソリューションは、1つのセルだけに影響を与えるように変更することができます。

'div.input''div.cell.code_cell.rendered.selected div.input'変更して'div.input'

HTML('''<script>
code_show=true; 
function code_toggle() {
    if (code_show){
        $('div.cell.code_cell.rendered.selected div.input').hide();
    } else {
        $('div.cell.code_cell.rendered.selected div.input').show();
    }
    code_show = !code_show
} 

$( document ).ready(code_toggle);
</script>

To show/hide this cell's raw code input, click <a href="javascript:code_toggle()">here</a>.''')

これは、セルの出力で「 ここをクリック 」プロンプトをクリックすると、そのセルが「選択された」セルになり、したがって非表示になるためです。

あなたのJavaScriptコードが<script></script>タグの中で次のようなコード行でトグルを実行する場合

$( document ).ready(code_toggle);

入力セルが実行されると、ブロックは自動的に(「デフォルトで」)隠されます。

セル入力をデフォルトで非表示にする場合は、セルの実行と下の選択/挿入オプションではなく 、セルの実行Ctrl + Return )オプションを使用してセルを実行する必要があることに注意してください 。 これらは、JavaScriptを実行する前に "選択された"ラベルの次のセルへの移動を促すので、出力に " ここをクリック "トグルリンクがないセルを隠すことになります。 この場合、セルを検査し、関連するタグをナビゲートしてdisplay='none';変更する必要がありdisplay='none'; display='block';display='block';

これは、セル内のコードの最後に置く必要があり、このコードを実行する前にIPython.displayからHTMLをインポートする必要があることに注意してください。 実行することでそうすることができます

from IPython.display import HTML

木星ノートでは、バーにもオプションがあります: 出力をClearすることもできClearToggleを使用して出力を非表示にすることもできます。 どちらの場合も、セル内で計算された変数は削除されません。


誰でも役に立つコード・セルを除外した場合(ここで尋ねるものではない)、nbconvertにこのフラグを追加できます。-- --TemplateExporter.exclude_code_cell=True