Python Gegenteil von matplotlib.pyplot.savefig

DieRenteEnte

Fleet Admiral
Registriert
Nov. 2007
Beiträge
11.357
Ich bin gerade echt zu dumm zum Suchen.

Was ist das Gegenteil von "matplotlib.pyplot.savefig"?
Also das Laden/Darstellen/etc.?

Ausgangslage: (in einem Online Jupyter Notebook)
Python:
fig, ax = plt.subplots(figsize=(16,16), nrows=4, ncols=4)

blablabla.plot()

fig.savefig('ein_name.png')

Wie bitte kann ich die gespeicherte Grafik wieder in einer anderen Codezelle aufrufen?

Ich habe diese Funktion buchstäblich noch nie genutzt und jetzt beim Suchen finde ich auch nichts...
Es geht wohl kein:
  • fig.loadfig('ein_name.png')
  • fig.openfig('ein_name.png')
  • fig.show('ein_name.png')
 
Ich würde mal vermuten, dass es eine solche Methode nicht gibt. Beim Abspeichern als PNG dürfte einiges an Information des Plots verloren gehen.
 
  • Gefällt mir
Reaktionen: M4ttX, Beneee und madmax2010
gib bitte etwas mehr kontext.

was @NeoExacun sagt ist schon richtig. Rohhdaten speichern; Plots daraus mit ebenfalls gespeichertem Code bearbeiten.

Mit vektorgrafiken geht was du vor hast ein bisschen, bei pixel basierten Formaten hast du keine Chance.

Nutzt du Jupyter Notebooks?
 
@Beneee
Danke, das war es... darauf bin ich gerade nicht gekommen.


Nicht mehr wichtig:

In diesem Beispiel nutze ich ein Jupyter Notebook im Browser.

Mein Ablauf:
1. Daten in einem DataFrame aufbereiten
2. Statistik mit einem .plot() darstellen
3. Grafik der Statistik als .png speichern
4. Problem, weil ...
... ich möchte die Grafik ganz weit unten im Notebook nochmals darstellen. Das Bild ist in einem Online-Speicherplatz abgelegt.
Die Daten bzw. der Code des DataFrames dazu spielen keine Rolle mehr, es geht nur noch um die Visualisierung als Bild ganz weit unten im Notebook.
Die Figure dazu wurde schon längst überschrieben, daher kann ich die Grafik nicht einfach mit "display(fig)" nochmals ausgeben.

Das Speichern der vielen Figures mit "fig_1", "fig_2", etc. kommt leider nicht infrage. Der Speicherplatz im Arbeitsspeicher ist stark limitiert. Daher überschreibe ich jede vorherige Figure mit namen "fig".

Am Ende sollen ca. 30-50 Bilder angezeigt werden. Nur die Bilder... ohne DataFrame, ohne Code, ohne Daten. Quasi als hätte man ein neues Notebook, aber die Bilder sind weiterhin im Online-Speicherplatz.
Die Bilder kann man zwar in einzelnen Tabs öffnen, aber ich möchte keine 30-50 Tabs offen haben, sondern die Bilder im Notebook, damit ich hoch- und runterscrollen kann.

Ich hoffe, das war verständlicher.
 
Zuletzt bearbeitet:
Highspeed Opi schrieb:
Die Figure dazu wurde schon längst überschrieben, daher kann ich die Grafik nicht einfach mit "display(fig)" nochmals ausgeben.

Das Speichern der vielen Figures mit "fig_1", "fig_2", etc. kommt leider nicht infrage. Der Speicherplatz im Arbeitsspeicher ist stark limitiert. Daher überschreibe ich jede vorherige Figure mit namen "fig".
Hast du das ausprobiert, das es nicht geht? Was heißt limitiert? 50 Bilder klingt nicht nach besonders viel. Lässt du das Notebook auf deinem Kühlschrank laufen? :D Kann mir nicht vorstellen, dass ein normaler Computer da RAM Probleme bekommt.
 
Das ist das Problem dabei... mein Kühlschrank wäre schneller.
Es ist kein normaler Computer. Das Ding ist uralt, hat 400 MB RAM freigegeben, die anderen ~ 1,5 GB sind für das System selbst oder andere Dinge reserviert.
Frag mich nicht, wie und warum. Davon habe ich keine Ahnung. Ich bin nicht mal ITler...
Fakt ist, dass ich nur mit 400 MB arbeiten kann. In diese 400 MB müssen aber auch die DataFrames geladen werden.

Auf meine Empfehlung, die alte Kiste mal mit etwas Modernem zu ersetzen, kam die Antwort, dass es nicht möglich sei. Die Software und Treiber darauf gibt es nicht für neue Systeme und der Entwickler der Software und Treiber ist schon lange in Rente und keiner hat Ahnung, was der gemacht hat.

Es handelt sich um einen besonderen Kunden. :)
 
  • Gefällt mir
Reaktionen: BeBur
Zurück
Oben