web-dev-qa-db-fra.com

effondrement de la cellule dans le cahier Jupyter

J'utilise le cahier ipython Jupyter. Disons que j'ai défini une fonction qui occupe beaucoup d'espace sur mon écran. Y at-il un moyen de réduire la cellule?

Je souhaite que la fonction reste exécutée et appelable, mais je souhaite également masquer/réduire la cellule afin de mieux visualiser le bloc-notes. Comment puis-je faire ceci?

99
aloha

Le package jupyter contrib nbextensions Python contient une extension de pliage de code qui peut être activée dans le bloc-notes. Suivez le lien (Github) pour la documentation.

Pour installer en ligne de commande:

_pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
_

Pour faciliter leur gestion, je vous recommande également le package jupyter nbextensions configurator . Cela fournit un onglet supplémentaire dans l'interface de votre ordinateur portable à partir duquel vous pouvez facilement (dés) activer toutes les extensions installées.

Installation:

_pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
_
64
Energya

Vous pouvez créer une cellule et y insérer le code suivant:

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

L'exécution de cette cellule masquera toutes les cellules en entrée. Pour les afficher, vous pouvez utiliser le menu pour effacer toutes les sorties.

Sinon, vous pouvez essayer des extensions de bloc-notes comme ci-dessous:

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

22
Pan Yan

JupyterLab prend en charge la réduction de cellules. Cliquez sur la barre de cellule bleue à gauche pour plier la cellule. enter image description here

15
intsco

J'avais un problème similaire et les "nbextensions" signalées par @Energya fonctionnaient très bien et sans effort. Les instructions d’installation sont simples (j’ai essayé avec anaconda sous Windows) pour les extensions d’ordinateurs portables et pour leur configurateur .

Cela dit, je voudrais ajouter que les extensions suivantes devraient présenter un intérêt.

  • Masquer l'entrée | Cette extension permet de cacher un codecell individuel dans un cahier. Ceci peut être réalisé en cliquant sur le bouton de la barre d’outils: Hide Input

  • Rubriques Pliables | Permet au portable d’avoir des sections réductibles, séparées par des en-têtes Collapsible Headings

  • Pliage de code | Ceci a été mentionné mais je l’ajoute pour compléter Codefolding

13
Atul Singh Arora

Créez un fichier custom.js dans ~/.jupyter/custom/avec le contenu suivant:

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

Après l'enregistrement, redémarrez le serveur et actualisez le bloc-notes. Vous pouvez réduire n'importe quelle cellule en cliquant sur l'étiquette de saisie (Dans []).

9
Sundar

L'extension hide_code vous permet de masquer des cellules individuelles et/ou les invites à côté d'elles. Installer en tant que

pip3 install hide_code

Visitez https://github.com/kirbs-/hide_code/ pour plus d'informations sur cette extension.

8
Linas

Tout d'abord, suivez les instructions de Energya:

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

La deuxième est la clé: Après l’ouverture de Jupiter Notebook, cliquez sur l’onglet Nbextension. Maintenant Recherchez "colla" dans l'outil de recherche fourni par Nbextension (et non par le navigateur Web), vous trouverez alors un élément appelé "En-têtes réductibles".

Voici ce que tu veux!

7
user40780

Il existe également une version améliorée de la suggestion de Pan Yan. Il ajoute le bouton qui affiche les cellules de code:

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

Ou 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>"""))
2
Peter Zagubisalo

Vous n'avez pas besoin de faire grand chose sauf pour activer les extensions:

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

enter image description here

Très probablement, vous trouverez toutes vos extensions ici:

http://localhost:8888/nbextensions

enter image description here

1
prosti