Ich habe Probleme mit Matplotlib darauf bestehen, eine Zahl wnidow anzuzeigen, auch wenn ich Show() nicht aufgerufen habe.Matplotlib kann Zahlenfenster nicht unterdrücken
Die Funktion in Frage:
def make_plot(df):
fig, axes = plt.subplots(3, 1, figsize=(10, 6), sharex=True)
plt.subplots_adjust(hspace=0.2)
axes[0].plot(df["Date_Time"], df["T1"], df["Date_Time"], df["T2"])
axes[0].set_ylabel("Temperature (C)")
axes[0].legend(["T1", "T2"], bbox_to_anchor=(1.12, 1.1))
axes[1].semilogy(df["Date_Time"], df["IGP"], df["Date_Time"], df["IPP"])
axes[1].legend(["IGP", "IPP"], bbox_to_anchor=(1.12, 1.1))
axes[1].set_ylabel("Pressure (mBar)")
axes[2].plot(df["Date_Time"], df["Voltage"], "k")
axes[2].set_ylabel("Voltage (V)")
current_axes = axes[2].twinx()
current_axes.plot(df["Date_Time"], df["Current"], "r")
current_axes.set_ylabel("Current (mA)")
axes[2].legend(["V"], bbox_to_anchor=(1.15, 1.1))
current_axes.legend(["I"], bbox_to_anchor=(1.14, 0.9))
plt.savefig("static/data.png")
wo df ein Datenrahmen ist Pandas erstellt. Dies sollte im Hintergrund eines Webservers sein, also will ich nur, dass diese Funktion die Datei in das angegebene Verzeichnis löscht. Wenn es jedoch ausgeführt wird, macht es das, und zieht dann ein Zahlenfenster hoch und bleibt in einer Schleife stecken, was mich daran hindert, die Seite neu zu laden. Fehle ich etwas Offensichtliches?
EDIT: Forgot hinzufügen, ich bin Python 2.7 auf Windows 7, 64 Bit ausgeführt.
möglicherweise möchten Sie überprüfen, ob Sie in [interaktiven Modus] laufen lassen (http://matplotlib.org/faq/usage_faq.html#what-is -interaktiver Modus). – Evert
Auch, welches Backend benutzen Sie? Haben Sie ein Nicht-GUI-Backend ausgewählt? – Evert
Hallo @Evert. Ich habe versucht, mit plt.ioff() den interaktiven Modus auszuschalten, aber das hat nicht geholfen. Oder besser gesagt, der Code wurde doppelt statt nur einmal ausgeführt (zwei Zahlenfenster werden erzeugt, bevor er stecken bleibt). Können Sie mir erklären, wie ich ein Nicht-GUI-Backend wählen soll? –