collapse cell in jupyter notebook

前端 未结 12 1292
长发绾君心
长发绾君心 2020-12-22 17:00

I am using ipython Jupyter notebook. Let\'s say I defined a function that occupies a lot of space on my screen. Is there a way to collapse the cell?

I want the func

相关标签:
12条回答
  • 2020-12-22 17:15

    There's also an improved version of Pan Yan suggestion. It adds the button that shows code cells back:

    %%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>
    

    Or 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>"""))
    
    0 讨论(0)
  • 2020-12-22 17:17

    I had a similar issue and the "nbextensions" pointed out by @Energya worked very well and effortlessly. The install instructions are straight forward (I tried with anaconda on Windows) for the notebook extensions and for their configurator.

    That said, I would like to add that the following extensions should be of interest.

    • Hide Input | This extension allows hiding of an individual codecell in a notebook. This can be achieved by clicking on the toolbar button:

    • Collapsible Headings | Allows notebook to have collapsible sections, separated by headings

    • Codefolding | This has been mentioned but I add it for completeness

    0 讨论(0)
  • 2020-12-22 17:17

    Create custom.js file inside ~/.jupyter/custom/ with following contents:

    $("<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');
        }
    });
    

    After saving, restart the server and refresh the notebook. You can collapse any cell by clicking on the input label (In[]).

    0 讨论(0)
  • 2020-12-22 17:17

    There are many answers to this question, all of which I feel are not satisfactory (some more than others), of the many extensions - code folding, folding by headings etc etc. None do what I want in simple and effective way. I am literally amazed that a solution has not been implemented (as it has for Jupyter Lab).

    In fact, I was so dissatisfied that I have developed a very simple notebook extension that can expand/collapse the code in a notebook cell, while keeping it executable.

    The GitHub repository: https://github.com/BenedictWilkinsAI/cellfolding

    Below is a small demo of what the extension does:

    Simply double clicking left of the code cell will collapse it to a single line:

    Double clicking again will expand the cell.

    The extension can be installed easily with pip:

    pip install nbextension-cellfolding
    jupyter nbextension install --py cellfolding --user
    jupyter nbextension enable --py cellfolding --user 
    

    and is also compatible with nbextension configurator. I hope that people will find this useful!

    0 讨论(0)
  • 2020-12-22 17:23

    The jupyter contrib nbextensions Python package contains a code-folding extension that can be enabled within the notebook. Follow the link (Github) for documentation.

    To install using command line:

    pip install jupyter_contrib_nbextensions
    jupyter contrib nbextension install --user
    

    To make life easier in managing them, I'd also recommend the jupyter nbextensions configurator package. This provides an extra tab in your Notebook interface from where you can easily (de)activate all installed extensions.

    Installation:

    pip install jupyter_nbextensions_configurator
    jupyter nbextensions_configurator enable --user
    
    0 讨论(0)
  • 2020-12-22 17:26

    You don't need to do much except to enable the extensions:

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

    Most probable you will find all your extensions in here:

    http://localhost:8888/nbextensions
    

    0 讨论(0)
提交回复
热议问题