wake-up-neo.com

Zelle in Jupyter Notebook reduzieren

Ich benutze Ipython Jupyter Notebook. Angenommen, ich habe eine Funktion definiert, die viel Platz auf meinem Bildschirm einnimmt. Gibt es eine Möglichkeit, die Zelle zusammenzubrechen?

Ich möchte, dass die Funktion ausgeführt und aufrufbar bleibt, aber ich möchte die Zelle ausblenden/reduzieren, um das Notizbuch besser zu visualisieren. Wie kann ich das machen?

99
aloha

Das jupyter contrib nbextensions Python Paket enthält eine Code-Folding-Erweiterung, die im Notebook aktiviert werden kann. Folgen Sie dem Link (Github) für die Dokumentation.

So installieren Sie mithilfe der Befehlszeile:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

Um die Verwaltung zu vereinfachen, empfehle ich außerdem die Option jupyter nbextensions configurator Paket. Dies bietet eine zusätzliche Registerkarte in Ihrer Notebook-Benutzeroberfläche, auf der Sie alle installierten Erweiterungen einfach (de) aktivieren können.

Installation:

pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
64
Energya

Sie können eine Zelle erstellen und den folgenden Code einfügen:

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

Wenn Sie diese Zelle ausführen, werden alle Eingabezellen ausgeblendet. Um sie wieder anzuzeigen, können Sie über das Menü alle Ausgänge löschen.

Andernfalls können Sie die folgenden Notebook-Erweiterungen ausprobieren:

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

22
Pan Yan

JupyterLab unterstützt das Kollabieren von Zellen. Klicken Sie auf die blaue Zellenleiste links, um die Zelle zu falten. enter image description here

15
intsco

Ich hatte ein ähnliches Problem und die von @Energya aufgezeigten "nbextensions" funktionierten sehr gut und mühelos. Die Installationsanweisungen sind einfach (ich habe es mit Anaconda unter Windows versucht) für die Notebook-Erweiterungen und für deren Konfigurator .

Dennoch möchte ich hinzufügen, dass die folgenden Erweiterungen von Interesse sein sollten.

  • Eingabe ausblenden | Diese Erweiterung ermöglicht das Ausblenden einer einzelnen Codezelle in einem Notebook. Dies kann durch Klicken auf die Schaltfläche in der Symbolleiste erreicht werden: Hide Input

  • Zusammenklappbare Überschriften | Ermöglicht es dem Notebook, zusammenklappbare Abschnitte zu haben, die durch Überschriften getrennt sind Collapsible Headings

  • Codefolding | Dies wurde erwähnt, aber ich füge es der Vollständigkeit halber hinzu Codefolding

13

Erstellen Sie die Datei custom.js in ~/.jupyter/custom/mit folgendem Inhalt:

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

Starten Sie den Server nach dem Speichern neu und aktualisieren Sie das Notizbuch. Sie können jede Zelle minimieren, indem Sie auf die Eingabebezeichnung (In []) klicken.

9
Sundar

Mit der Erweiterung hide_code können Sie einzelne Zellen und/oder die Eingabeaufforderungen daneben ausblenden. Installieren Sie als

pip3 install hide_code

Besuchen Sie https://github.com/kirbs-/hide_code/ für weitere Informationen zu dieser Erweiterung.

8
Linas

Befolgen Sie zunächst die Anweisungen von Energya:

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

Zweitens ist der Schlüssel: Nachdem Sie das Jupiter-Notizbuch geöffnet haben, klicken Sie auf die Registerkarte Nbextension. Nun Suche "colla" mit dem von Nbextension bereitgestellten Suchwerkzeug (nicht mit dem Webbrowser, dann findest du etwas mit dem Namen "Collapsible Headings".

Das ist, was du willst!

7
user40780

Es gibt auch eine verbesserte Version des Pan Yan-Vorschlags. Es wird die Schaltfläche hinzugefügt, mit der die Code-Zellen wieder angezeigt werden:

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

Oder 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

Sie müssen nicht viel tun, außer um die Erweiterungen zu aktivieren:

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

enter image description here

Höchstwahrscheinlich finden Sie alle Ihre Erweiterungen hier:

http://localhost:8888/nbextensions

enter image description here

1
prosti