2015-07-20 19 views
11

有沒有辦法在IPython筆記本中選擇性地隱藏一個特定的輸入或輸出單元格?如何在IPython Notebook中隱藏一個特定的單元格(輸入或輸出)?

我只能找到下面的代碼來顯示/隱藏所有輸入單元格。

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

但如果我只是想隱藏筆記本的第一個單元格中輸入什麼?

+0

似乎沒有容易的辦法?我認爲這會很有用,因爲有時候你想隱藏一些太長或者與上下文無關的單元。 –

+0

2018年爲您答疑。您可以切換到Jupyter Lab。有一個懸停工具顯示在單元格左側(代碼和輸出),單擊哪個*摺疊*單元格 –

回答

7

這現在使用標籤內置到nbconvert(as of 5.3.0)中。

下面是從輸出中刪除特定單元格的示例。使用this notebook。這個例子有三個單元:一個降價單元,一個隱藏的代碼單元和一個不會被隱藏的代碼單元。

  1. remove_cell標籤添加到您希望使用內置到筆記本電腦或JupyterLab標記編輯器來隱藏任何細胞(具體名稱「remove_cell」無所謂)
  2. 轉換與nbconvert

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

與標籤remove_cell任何細胞將來自輸出被移除。

hidden

除了整個細胞,可以過濾只輸入或只輸出:

  • TagRemovePreprocessor.remove_input_tags
  • TagRemovePreprocessor.remove_single_output_tags
  • TagRemovePreprocessor.remove_all_outputs_tags
+0

謝謝你。它是否只適用於html輸出?如果使用'jupyter nbconvert --to notebook --inplace ...',似乎沒有任何東西隱藏在生成的.ipynb文件中。 – Jack

7

下面是一個可以讓你只編輯單元格的元數據隱藏在HTML/PDF輸出細胞的方法。

版本我使用的是:

$ jupyter notebook --version

4.1.0

$ jupyter nbconvert --version

4.2.0

  1. 按照安裝說明下載IPython的筆記本擴展模板在Github上:pip install https://github.com/ipython-contrib/IPython-notebook-extensions/tarball/master
  2. 運行jupyter notebook
  3. localhost:8888/nbextensions(或者你開始任何端口),並激活Printview
  4. 回去localhost:8888/tree,創建一個新的筆記本電腦,並進入它
  5. 創建一個代碼單元一些代碼可以產生輸出,例如print("You can see me") #but not me
  6. 轉到View>Cell Toolbar>Edit Metadata
  7. 點擊Edit Metadata按鈕,現在顯示的單元格的右上角
  8. 加入'hide_input':True到JSON例如礦山看起來像{ "collapsed": false, "hide_input": true, "trusted": true }
  9. 節省筆記本
  10. 回到終端和執行jupyter nbconvert --to pdf --template printviewlatex.tplx notebookname.ipynb(如果你的筆記本電腦被稱爲notebookname.ipynb.ipynb

你現在應該呼籲notebookname.pdf在目錄中的文件。希望它應該只有文本You can see me在其中......手指交叉。

3

您可以更改隱藏所有輸入單元的解決方案,以僅影響單個單元格。

'div.input'更改爲'div.cell.code_cell.rendered.selected 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 + 返回)選項,運行細胞和Select /在之下插入選項。 這些將在執行JavaScript之前提示將「選定」標籤移動到下一個單元格,因此您最終可能會隱藏其輸出中沒有「」點擊此處「切換鏈接的單元格。在這種情況下,您必須檢查該單元格並瀏覽相關標籤並將display='none';更改爲display='block';

請注意,這必須放在單元中任何代碼的末尾,並且您需要在執行此代碼之前從IPython.display導入HTML。你可以通過執行

from IPython.display import HTML 
3

在木星筆記本這樣做,也有在酒吧的一個選項: enter image description here 可以Clear輸出,也可以用它隱藏Toggle。在這兩種情況下,您都不會刪除單元格內計算的任何變量。

相關問題