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?
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
_
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
JupyterLab prend en charge la réduction de cellules. Cliquez sur la barre de cellule bleue à gauche pour plier la cellule.
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:
Rubriques Pliables | Permet au portable d’avoir des sections réductibles, séparées par des en-têtes
Pliage de code | Ceci a été mentionné mais je l’ajoute pour compléter
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 []).
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.
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!
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>"""))
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
Très probablement, vous trouverez toutes vos extensions ici:
http://localhost:8888/nbextensions