Wie kann ich verhindern, dass ein bestimmtes Diagramm im Jupyter-Notizbuch angezeigt wird? Ich habe mehrere Diagramme in einem Notizbuch, aber ich möchte, dass eine Teilmenge davon in einer Datei gespeichert und nicht auf dem Notizbuch angezeigt wird, da dies erheblich verlangsamt wird.
Ein minimales Arbeitsbeispiel für ein Jupyter-Notebook ist:
%matplotlib inline
from numpy.random import randn
from matplotlib.pyplot import plot, figure
a=randn(3)
b=randn(3)
for i in range(10):
fig=figure()
plot(b)
fname='s%03d.png'%i
fig.savefig(fname)
if(i%5==0):
figure()
plot(a)
Wie Sie sehen können, habe ich zwei Arten von Plots, a und b. Ich möchte, dass a gezeichnet und angezeigt werden, und ich möchte nicht, dass die b-Diagramme angezeigt werden. Ich möchte nur, dass sie in einer Datei gespeichert werden. Hoffentlich beschleunigt dies die Dinge ein wenig und verschmutzt mein Notizbuch nicht mit Zahlen, die ich nicht sehen muss.
Vielen Dank für Ihre Zeit
Antworten:
Vielleicht einfach die Achse löschen, zum Beispiel:
fig= plt.figure() plt.plot(range(10)) fig.savefig("save_file_name.pdf") plt.close()
zeichnet die Ausgabe nicht im
inline
Modus. Ich kann nicht herausfinden, ob die Daten wirklich gelöscht werden.quelle
plt.close()
dies nicht. Ich denke, es ist eine Art Hinweis auf die übrig gebliebene Figur, aber ich bin mir nicht sicher.plt.close()
zuplt.close();
sollte sollte den Trick tun. Dies funktionierte für mich auf IPython 2 und Matplotlib 1.3.1notebook
erzeugt diese Methode im Modus immer noch einen leeren Bereich in der Ausgabezelle, der mein Notizbuch überfüllt, wenn mehrere Diagramme gleichzeitig ausgeführt werden. Ich wickelte meine Plotten Routine in einem Paarplt.ioff()
undplt.ion()
und jetzt gibt es keine mehr Unordnung.Ich konnte verhindern, dass meine Figuren angezeigt werden, indem ich den interaktiven Modus mithilfe der Funktion ausschaltete
quelle
%matplotlib notebook
zu erstellen und statische Figuren in der Vorschau anzuzeigen .Um die Ausgabe einer Jupiter-Notebook-Zelle zu verhindern, können Sie die Zelle mit starten
Dies kann nützlich sein, wenn alle anderen hier gezeigten Methoden fehlschlagen.
quelle
Ab IPython 6.0 gibt es eine weitere Option, um die Inline-Ausgabe (vorübergehend oder dauerhaft) auszuschalten. Dies wurde in dieser Pull-Anfrage eingeführt .
Sie würden das "agg" Backend verwenden, um keine Inline-Ausgabe anzuzeigen.
Es scheint jedoch, dass, wenn Sie zuerst das Inline-Backend aktiviert haben, dies zweimal aufgerufen werden muss, um wirksam zu werden.
So würde es in Aktion aussehen
quelle
Unter Jupyter 6.0 verwende ich das folgende Snippet, um die matplot lib-Zahlen selektiv nicht anzuzeigen.
import matplotlib as mpl ... backend_ = mpl.get_backend() mpl.use("Agg") # Prevent showing stuff # Your code mpl.use(backend_) # Reset backend
quelle
Ich bin jedoch ein Anfänger außerhalb des Inline-Modus, wenn Sie die Ausgabe in Ihrem Notebook nicht sehen möchten, indem Sie:
oder:
um es zurück zu benutzen:
Eine bessere Lösung wäre:
was sagt, Inline-Modus aus.
ich hoffe es hilft.
quelle