Ich habe ein ipython / jupyter-Notizbuch, das ich mit NBviewer visualisiere.
Wie kann ich den gesamten Code aus dem von NBviewer gerenderten Notizbuch ausblenden, sodass nur die Ausgabe von Code (z. B. Diagramme und Tabellen) und die Markdown-Zellen angezeigt werden?
javascript
ipython
ipython-notebook
Lucaceron
quelle
quelle
Antworten:
quelle
<form action ... > ... </form>
durch einfaches HTML wieThe raw code for this IPython notebook is by default hidden for easier reading.To toggle on/off the raw code, click <a href="javascript:code_toggle()">here</a>.
Dies ist ab Version 5.2.1 direkt von nbconvert aus möglich : Inhalte können mithilfe der integrierten Ausschlussoptionen für den Vorlagenexporter gefiltert werden . Beispielsweise:
schließt die "Eingabecode" -Zellen aus, dh den Code selbst. Ähnliche Optionen gibt es, um Eingabeaufforderungen, Markdown-Zellen oder Ausgänge oder sowohl Ein- als auch Ausgänge auszuschließen.
(Diese Optionen sollten unabhängig vom Ausgabeformat funktionieren.)
quelle
Ich würde
hide_input_all
von nbextensions verwenden ( https://github.com/ipython-contrib/IPython-notebook-extensions ). Hier ist wie:Finden Sie heraus, wo sich Ihr IPython-Verzeichnis befindet:
Laden Sie nbextensions herunter und verschieben Sie es in das IPython-Verzeichnis.
Bearbeiten Sie Ihre custom.js Datei irgendwo im IPython Verzeichnis (Mine war in profile_default / static / custom ) an das ähnlich zu sein custom.example.js im nbextensions Verzeichnis.
Fügen Sie diese Zeile zu custom.js hinzu :
IPython Notebook verfügt nun über eine Schaltfläche zum Umschalten von Codezellen, unabhängig von der Arbeitsmappe.
quelle
In der neuesten IPython-Notebook-Version ist die Ausführung von Javascript in Markdown-Zellen nicht mehr möglich. Das Hinzufügen einer neuen Markdown-Zelle mit dem folgenden Javascript-Code funktioniert also nicht mehr, um Ihre Codezellen auszublenden (siehe diesen Link ).
Ändern Sie ~ / .ipython / profile_default / static / custom / custom.js wie folgt:
quelle
Ich habe einen Code geschrieben, der dies erreicht, und eine Schaltfläche hinzugefügt, um die Sichtbarkeit des Codes umzuschalten.
Folgendes befindet sich in einer Codezelle oben in einem Notizbuch:
Sie können sehen , ein Beispiel dafür , wie diese aussieht , ist in NBviewer hier .
Update: Dies hat ein komisches Verhalten mit Markdown-Zellen in Jupyter, funktioniert aber in der HTML-Exportversion des Notebooks einwandfrei.
quelle
'.input_area'
und'.prompt'
verwenden'div.input'
und es funktioniert wie ein Zauber! Also, um es noch einmal zusammenzufassen, ersetzen SiejQuery("div.input").toggle();
anstelle vonjQuery('.input_area').toggle(); jQuery('.prompt').toggle();
. @ Max Masnick, könnten Sie Ihre Antwort korrigieren?CSS = """#notebook div.output_subarea { max-width:100%;"""
HTML('<style>{}</style>'.format(CSS))
. Dies ist sehr nützlich zum Drucken.Es gibt eine schöne Lösung bereitgestellt , hier das funktioniert gut für Notebooks in HTML exportieren. Die Website verlinkt sogar hierher zurück zu diesem SO-Beitrag, aber ich sehe Chris 'Lösung hier nicht! (Chris, wo bist du?)
Dies ist im Grunde die gleiche Lösung wie die akzeptierte Antwort von harsch, hat jedoch den Vorteil, dass der Umschaltcode selbst im exportierten HTML-Code ausgeblendet wird. Mir gefällt auch, dass dieser Ansatz die Notwendigkeit der IPython-HTML-Funktion vermeidet.
Fügen Sie zum Implementieren dieser Lösung den folgenden Code zu einer 'Raw NBConvert'-Zelle oben in Ihrem Notizbuch hinzu:
Exportieren Sie dann einfach das Notizbuch in HTML. Oben im Notizbuch befindet sich eine Umschalttaste, mit der Sie den Code ein- oder ausblenden können.
Chris liefert hier auch ein Beispiel .
Ich kann überprüfen, ob dies in Jupyter 5.0.0 funktioniert
Update : Es ist auch praktisch, die
div.prompt
Elemente zusammen mit dendiv.input
Elementen ein- / auszublenden . Dies entfernt denIn [##]:
undOut: [##]
Text und reduziert die Ränder auf der linken Seite.quelle
$('div.output').next().hide('500');
, um die nächste Ausgabe auszublenden? Ich habe es selbst versucht, kann es aber nicht zum Laufen bringen.Dies kann mit einem IPython-
ToggleButton
Widget und etwas JavaScript erfolgen. Der folgende Code sollte in eine Codezelle oben im Dokument eingefügt werden:Dadurch wird die folgende Schaltfläche zum Umschalten zwischen dem Ein- und Ausblenden des Codes für das Jupyter-Notizbuch (standardmäßig "Ausblenden") aktiviert.
Wenn der Status "show" aktiviert ist, wird der Code für das Jupyter-Notizbuch angezeigt:
Abgesehen davon sollte ein Großteil dieses Codes am Anfang des Notizbuchs platziert werden, die Position der Umschalttaste ist jedoch optional. Ich persönlich bevorzuge es, es am Ende des Dokuments zu belassen. Verschieben Sie dazu einfach die
display(button)
Zeile in eine separate Codezelle am unteren Rand der Seite:quelle
Für eine bessere Anzeige mit einem gedruckten Dokument oder einem Bericht müssen wir auch die Schaltfläche entfernen und bestimmte Codeblöcke ein- oder ausblenden. Folgendes verwende ich (kopiere es einfach und füge es in deine erste Zelle ein):
Dann in Ihren nächsten Zellen:
und
quelle
Dadurch wird eine IPython-Notebook-Ausgabe gerendert. Sie werden jedoch feststellen, dass Sie den Eingabecode anzeigen können. Sie können ein Notizbuch kopieren und diesen Code bei Bedarf hinzufügen, um ihn für jemanden freizugeben, der den Code nicht anzeigen muss.
quelle
from IPython.display import HTML HTML('''<script> $('div.input').show()''')
Konvertieren Sie die Zelle in Markdown und verwenden Sie das HTML5-
<details>
Tag wie im Beispiel vonjoyrexus
:https://gist.github.com/joyrexus/16041f2426450e73f5df9391f7f7ae5f
quelle
Hier ist eine andere von p3trus vorgeschlagene Lösung :
Wie von p3trus beschrieben : "[It] fügt der Symbolleiste des ipython-Notizbuchs eine Schaltfläche zum Ausblenden / Anzeigen der Eingabecodezelle hinzu. Um sie zu verwenden, müssen Sie die Datei custom.js in Ihrem
.ipython_<profile name>/static/custom/
Ordner ablegen ist das verwendete Ipython-Profil. "Meine eigenen Kommentare: Ich habe diese Lösung überprüft und sie funktioniert mit iPython 3.1.0.
quelle
Die akzeptierte Lösung funktioniert auch in Julia Jupyter / IJulia mit den folgenden Modifikationen:
Beachten Sie insbesondere:
display
Funktion$
Zeichen (sonst als Variable gesehen)quelle
Hier ist ein schöner Artikel (der gleiche, den @ Ken gepostet hat) darüber, wie man Jpuyter-Notebooks (das neue IPython) für die Präsentation aufpoliert. Es gibt unzählige Möglichkeiten, Jupyter mithilfe von JS, HTML und CSS zu erweitern, einschließlich der Möglichkeit, über Javascript mit dem Python-Kernel des Notebooks zu kommunizieren. Es gibt magische Dekorateure für
%%HTML
und%%javascript
so können Sie so etwas einfach in einer Zelle selbst machen:Ich kann auch dafür bürgen, dass Chris 'Methoden in Jupyter 4.XX funktionieren
quelle
Sehr einfache Lösung mit der Konsole des Browsers. Sie kopieren dies in Ihre Browserkonsole und drücken die Eingabetaste:
Dann schalten Sie den Code der Zelle um, indem Sie einfach auf die Nummer der Zelleingabe klicken.
quelle
(Papier) Drucken oder Speichern als HTML
Für diejenigen unter Ihnen, die die Ausgaben auf Papier drucken möchten, scheinen die obigen Antworten allein keine schöne endgültige Ausgabe zu ergeben. Wenn Sie jedoch den Code von @Max Masnick nehmen und den folgenden hinzufügen, können Sie ihn auf einer vollständigen A4-Seite drucken.
Der Grund für den Einzug ist, dass der von Max Masnick entfernte Eingabeaufforderungsabschnitt bedeutet, dass sich bei der Ausgabe alles nach links verschiebt. Dies hat jedoch nichts für die maximale Breite der Ausgabe getan, die auf beschränkt war
max-width:100%-14ex;
. Dies ändert die maximale Breite des Ausgabebereichs inmax-width:100%;
.quelle
Mit all den oben genannten Lösungen, obwohl Sie den Code verstecken, erhalten Sie immer noch den
[<matplotlib.lines.Line2D at 0x128514278>]
Mist über Ihrer Figur, den Sie wahrscheinlich nicht wollen.Wenn Sie die Eingabe tatsächlich entfernen möchten, anstatt sie nur auszublenden, ist es meiner Meinung nach die sauberste Lösung, Ihre Zahlen in versteckten Zellen auf der Festplatte zu speichern und dann nur die Bilder in Markdown-Zellen mit z
![Caption](figure1.png)
.quelle
_ = plt.plot()
, um es nicht drucken zu lassen[<>]
Mistquelle
quelle