2014-04-17 11 views
17

Ich fragte mich, warum einige Leute eine plt.draw() in ihren Code vor der plt.show() setzen. Für mein Code schien das Verhalten der plt.draw() nichts über die Ausgabe zu ändern. Ich habe im Internet gesucht, konnte aber nichts Nützliches finden.Unterschied zwischen plt.draw() und plt.show() in matplotlib

(vorausgesetzt, wir pyplot als from matplotlib import pyplot as plt importiert)

Antwort

24

plt.show() wird die aktuelle Zahl angezeigt, die Sie gerade arbeiten.

plt.draw() wird die Figur erneut zeichnen. Auf diese Weise können Sie im interaktiven Modus arbeiten. Wenn Sie Ihre Daten oder Formatierungen geändert haben, können Sie das Diagramm selbst ändern.

Der plt.draw docs Zustand:

Dies wird im interaktiven Modus verwendet, um eine Abbildung zu aktualisieren, die eine oder mehrere Objekt Plot-Methode aufruft geändert worden ist; Es ist nicht erforderlich, wenn die Figurenmodifikation vollständig mit pyplot-Funktionen durchgeführt wird, wenn eine Sequenz von Modifikationen mit einer pyplot-Funktion endet oder wenn matplotlib im nicht interaktiven Modus ist und die Sequenz von Modifikationen mit show() oder savefig() endet.

Dies scheint, dass die Verwendung plt.draw() vor plt.show(), wenn nicht die große Mehrheit im interaktiven Modus vorzuschlagen der Zeit Redundant werden. Das einzige Mal, wenn Sie es brauchen, ist es, wenn Sie einige sehr seltsame Modifikationen machen, die keine Pyplot-Funktionen beinhalten.

+1

Vielen Dank. Okay, in meinem Fall war es in der Tat überflüssig :) – Sebastian