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?
View
>Collapse All Code
, siehe hier und den Link hier .Antworten:
Das
jupyter contrib nbextensions
Python-Paket enthält eine Code-Folding-Erweiterung, die im Notebook aktiviert werden kann. Folgen Sie dem Link (Github) zur Dokumentation.So installieren Sie über die Befehlszeile:
Um die Verwaltung zu vereinfachen, würde ich das
jupyter nbextensions configurator
Paket auch empfehlen . Dies bietet eine zusätzliche Registerkarte in Ihrer Notebook-Oberfläche, über die Sie alle installierten Erweiterungen einfach (de) aktivieren können.Installation:
quelle
pip install jupyter_contrib_nbextensions
dannjupyter contrib nbextensions install --sys-prefix --skip-running-check
. Ich wünschte, Jupiter hätte dieses Paket standardmäßig.conda install -c conda-forge jupyter_contrib_nbextensions
.Due to major differences between the Jupyter Notebook and JupyterLab, the extensions in this repository will not work in JupyterLab
.Sie können eine Zelle erstellen und den folgenden Code einfügen:
Durch Ausführen dieser Zelle werden alle Eingabezellen ausgeblendet. Um sie wieder anzuzeigen, können Sie über das Menü alle Ausgaben löschen.
Andernfalls können Sie Notebook-Erweiterungen wie folgt ausprobieren:
https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/Home_3x
quelle
JupyterLab unterstützt das Zusammenfallen von Zellen. Durch Klicken auf die blaue Zellenleiste links wird die Zelle gefaltet.
quelle
source_hidden
undoutputs_hidden
ist eingestellt. nbformat.readthedocs.io/en/latest/…Ich hatte ein ähnliches Problem und die von @Energya hervorgehobenen "nbextensions" funktionierten sehr gut und mühelos. Die Installationsanweisungen für die Notebook-Erweiterungen und deren Konfigurator sind unkompliziert (ich habe es mit Anaconda unter Windows versucht) .
Trotzdem 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 Notizbuch. Dies kann durch Klicken auf die Symbolleistenschaltfläche erreicht werden:
Zusammenklappbare Überschriften | Ermöglicht dem Notizbuch zusammenklappbare Abschnitte, die durch Überschriften getrennt sind
Codefaltung | Dies wurde erwähnt, aber ich füge es der Vollständigkeit halber hinzu
quelle
Erstellen Sie die Datei custom.js in ~ / .jupyter / custom / mit folgenden Inhalten:
Starten Sie nach dem Speichern den Server neu und aktualisieren Sie das Notebook. Sie können jede Zelle reduzieren, indem Sie auf die Eingabebeschriftung (In []) klicken.
quelle
var c = $(event.target).closest('.cell.code_cell')
geändert hatte und Steohans Vorschlag befolgt hatte, alles in setTimeout zu verpacken.Mit der Erweiterung hide_code können Sie einzelne Zellen und / oder die Eingabeaufforderungen daneben ausblenden. Installieren als
Besuchen Sie https://github.com/kirbs-/hide_code/, um weitere Informationen zu dieser Erweiterung zu erhalten.
quelle
Befolgen Sie zunächst die Anweisungen von Energya:
Zweitens ist der Schlüssel: Klicken Sie nach dem Öffnen des Jupiter-Notizbuchs auf die Registerkarte Nbextension. Jetzt Suchen „colla“ aus dem Suchwerkzeug durch Nbextension (nicht von dem Web - Browser) , dann werden Sie etwas namens „zusammenklappbare Rubriken“ finden
Das ist, was du willst!
quelle
Wie andere bereits erwähnt haben, können Sie dies über nbextensions tun. Ich wollte kurz und einfach erklären, was ich getan habe:
So aktivieren Sie kollabierbare Überschriften: Aktivieren / installieren Sie in Ihrem Terminal Jupyter Notebook Extensions, indem Sie zuerst Folgendes eingeben:
Geben Sie dann Folgendes ein:
Öffnen Sie das Jupyter-Notizbuch erneut. Gehen Sie zur Registerkarte "Bearbeiten" und wählen Sie "nbextensions config". Deaktivieren Sie das Kontrollkästchen direkt unter dem Titel "Konfigurierbare Erweiterungen" und wählen Sie "Reduzierbare Überschriften".
quelle
nbextensions config
direkt vom Haupt-Dashboard aus zugreifen kann und stattdessen ein Notizbuch öffnen muss. Alternativ kann man, wie bereits erwähnt, überlocalhost:8888/nbextensions
(oder den in Ihrer Konfiguration befindlichen Port) darauf zugreifenEs gibt viele Antworten auf diese Frage, die meiner Meinung nach nicht zufriedenstellend sind (einige mehr als andere), von den vielen Erweiterungen - Code-Faltung, Faltung nach Überschriften usw. usw. Keine macht das, was ich will, auf einfache und effektive Weise. Ich bin buchstäblich erstaunt, dass eine Lösung nicht implementiert wurde (wie bei Jupyter Lab).
Tatsächlich war ich so unzufrieden, dass ich eine sehr einfache Notebook-Erweiterung entwickelt habe, mit der der Code in einer Notebook-Zelle erweitert / reduziert werden kann, während er ausführbar bleibt.
Das GitHub-Repository: https://github.com/BenedictWilkinsAI/cellfolding
Unten finden Sie eine kleine Demo der Erweiterung:
Durch einfaches Doppelklicken links neben der Codezelle wird diese in eine einzelne Zeile reduziert:
Durch erneutes Doppelklicken wird die Zelle erweitert.
Die Erweiterung kann einfach mit pip installiert werden:
und ist auch mit dem nbextension-Konfigurator kompatibel . Ich hoffe, dass die Leute dies nützlich finden!
quelle
Es gibt auch eine verbesserte Version des Pan Yan-Vorschlags. Es fügt die Schaltfläche hinzu, die Codezellen zurück zeigt:
Oder Python:
quelle
Sie müssen nur die Erweiterungen aktivieren:
Am wahrscheinlichsten finden Sie alle Ihre Erweiterungen hier:
quelle
Was ich benutze, um das gewünschte Ergebnis zu erzielen, ist:
toggle_cell.py
im selben Verzeichnis wie Ihr Notebookhide_sloution()
quelle