webentwicklung-frage-antwort-db.com.de

Verhindern, dass der Plot in jupyter notebook angezeigt wird

Wie kann ich verhindern, dass ein bestimmter Plot im Jupyter-Notizbuch angezeigt wird? Ich habe mehrere Diagramme in einem Notizbuch, möchte jedoch, 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 Grundstücken, a und b. Ich möchte, dass A's geplottet und angezeigt werden und ich möchte nicht, dass die B-Plots 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

48
gota

Vielleicht löschen Sie einfach die Achse, zum Beispiel:

fig= plt.figure()
plt.plot(range(10))
fig.savefig("save_file_name.pdf")
plt.close()

zeichnet die Ausgabe nicht im Modus inline. Ich kann nicht herausfinden, ob die Daten wirklich gelöscht werden.

53
Greg

Ich konnte die Anzeige meiner Figuren verhindern, indem ich den interaktiven Modus mit dieser Funktion ausschaltete

plt.ioff ()

26
Dr.PP

Um die Ausgabe von einer Jupyter-Notebook-Zelle zu verhindern, können Sie die Zelle mit starten

%%capture

Dies kann nützlich sein, wenn alle anderen hier gezeigten Methoden fehlschlagen.

Ich bin allerdings ein Anfänger außerhalb des Inline-Modus, wenn Sie die Ausgabe in Ihrem Notizbuch nicht sehen möchten, indem Sie:

%matplotlib auto

oder:

%matplotlib

um es wieder zu benutzen:

%matplotlib inline

mehr bessere Lösung wäre zu verwenden:

plt.ioff()

was sagt, Inline-Modus aus.

ich hoffe es hilft.

5
Deepak Joshi

Ab IPython 6.0 gibt es eine weitere Option, um die Inline-Ausgabe zu deaktivieren (vorübergehend oder dauerhaft). Dies wurde eingeführt in dieser Pull-Anfrage .

Sie würden das Backend "agg" verwenden, um keine Inline-Ausgabe anzuzeigen.

%matplotlib agg

Wenn Sie das Inline-Backend zuerst aktiviert haben, muss es anscheinend zweimal aufgerufen werden, damit es wirksam wird.

%matplotlib agg
%matplotlib agg

So würde es in Aktion aussehen