matplotlib und MemoryError: In RendererAgg: Out of memory
Verfasst: Sonntag 31. März 2024, 16:01
Hallo Pros,
leider bin ich für mein Problem nicht richtig Lösung gefunden oder habe das Problem falsch interpretiert?
Flgende Situation es werden Daten aufgenommen diese in eine Liste gepackt und alle 15min. ein Plot erzeugt. Nach ca. 306 Durchläufen
erhalte ich folgende Fehlermeldung:
-> MemoryError: In RendererAgg: Out of memory
Die Programmstruktur sieht wie folgt aus:
Wie schon erwähnt kommt der Fehler nach ca. 306 Speichervorgängen oder nach ca. 24 Stunden.
Jetzt meine Frage ist dieser Memoryfehler wirklich vom plot bzw. "matplotlib" verursacht oder ist das sogar ein Zeitproblem (24h usw.)?
Oder ist hier ggf. die Liste gtepin dafür mitverantwortlich wobei da sind ca. 1530 Werte zum Zeitpunkt des Fehles drin?
Da ich nicht alles in Python kann und mir der Überblick fehlt bin ich mir nicht sicher was ich da machen soll?
Für einen Tip bzw. Beispiel wäre ich sehr dankbar!
Vielen Dank im Voraus und
LG Hampo
leider bin ich für mein Problem nicht richtig Lösung gefunden oder habe das Problem falsch interpretiert?
Flgende Situation es werden Daten aufgenommen diese in eine Liste gepackt und alle 15min. ein Plot erzeugt. Nach ca. 306 Durchläufen
erhalte ich folgende Fehlermeldung:
-> MemoryError: In RendererAgg: Out of memory
Die Programmstruktur sieht wie folgt aus:
Code: Alles auswählen
import matplotlib.pyplot as plt
...
gtepin=[]
...
while True:
...
gtempin.append(mw)
...
...
fig, ax = plt.subplots()
ax.plot(x, gtepin, label='TEXT')
ax.plot(x, grfin, label='TEXT')
ax.axis([0, len(gtepin), -20, 100])
ax.set(xlabel='in 24h '+ str(len(gtepin)) + ' TEXT, ylabel='TEXT' , title='TEXT')
ax.grid()
ax.legend()
fig.savefig('/home/pi/MySky/mydb/mychart.png', dpi=300)
plt.close("all")
plt.close()
gc.collect()
...
...
Wie schon erwähnt kommt der Fehler nach ca. 306 Speichervorgängen oder nach ca. 24 Stunden.
Jetzt meine Frage ist dieser Memoryfehler wirklich vom plot bzw. "matplotlib" verursacht oder ist das sogar ein Zeitproblem (24h usw.)?
Oder ist hier ggf. die Liste gtepin dafür mitverantwortlich wobei da sind ca. 1530 Werte zum Zeitpunkt des Fehles drin?
Da ich nicht alles in Python kann und mir der Überblick fehlt bin ich mir nicht sicher was ich da machen soll?
Für einen Tip bzw. Beispiel wäre ich sehr dankbar!
Vielen Dank im Voraus und
LG Hampo