cellule d'effondrement dans le carnet de notes de jupyter

j'utilise le carnet Jupyter d'ipython. Disons que j'ai défini une fonction qui occupe beaucoup d'espace sur mon écran. Est-il un moyen de l'effondrement de la cellule?

je veux que la fonction reste exécutée et appelable, mais je veux cacher / effondrer la cellule afin de mieux visualiser le carnet. Comment puis-je faire cela?

61
demandé sur aloha 2015-10-16 01:21:54

8 réponses

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

à installer en utilisant la ligne de commande:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

pour faciliter leur gestion, je recommande aussi le paquet jupyter nbextensions configurator . Cela fournit un onglet supplémentaire dans votre interface de bloc-notes d'où vous pouvez facilement (de)Activer toutes les extensions installées.

Installation:

pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
36
répondu Energya 2017-02-05 19:35:42

vous pouvez créer une cellule et y mettre le code suivant:

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

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

sinon vous pouvez essayer les extensions de bloc-notes comme ci-dessous:

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

14
répondu Pan Yan 2015-10-16 01:20:35

créer personnalisé.js fichiers 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 enregistrement, redémarrez le serveur et rafraîchissez le bloc-notes. Vous pouvez réduire une cellule en cliquant sur l'étiquette d'entrée ([]).

8
répondu Sundar 2016-09-05 11:50:18

l'extension hide_code vous permet de cacher des cellules individuelles, et/ou les invites à côté d'elles. Installer comme

pip3 install hide_code

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

7
répondu Linas 2017-02-12 01:32:27

tout D'abord, suivre les instructions D'Energya:

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

la seconde est la clé: après avoir ouvert le carnet jupiter, cliquez L'onglet NB extension. Maintenant rechercher " colla" à partir de L'outil de recherche fourni par Nbextension (pas par le navigateur web) , puis vous trouverez quelque chose appelé "Caps repliables"

c'est Ce que vous voulez!

4
répondu user40780 2017-10-02 16:30:09

j'avais un problème similaire et les" extensions NB " soulignées par @Energya fonctionnaient très bien et sans effort. Les instructions d'installation sont simples (j'ai essayé avec anaconda sur Windows) pour les extensions de carnet et pour leur configurateur .

cela dit, je voudrais ajouter que les extensions suivantes doivent être d'intérêt.

  • Masquer Les Entrées | Cette extension permet de cacher un codecell dans un carnet. Cela peut être réalisé en cliquant sur le bouton de la barre d'outils: Hide Input

  • têtes repliables / permet au carnet d'avoir des sections repliables, séparées par des têtes Collapsible Headings

  • Codefolding | Ce qui a été mentionné, mais j'ajoute qu'il est complet Codefolding

2
répondu Atul Singh Arora 2018-03-28 13:05:43

il y a aussi une version améliorée de la suggestion de Pan Yan. Il ajoute le bouton qui affiche les cellules de code de retour:

%%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>"""))
0
répondu Peter Zagubisalo 2017-12-08 09:45:59

JupyterLab support cell collapsing. En cliquant sur la barre bleue de la cellule à gauche, vous pliez la cellule. enter image description here

0
répondu intsco 2018-08-30 07:46:13