Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
kann man irgendwie den Namen der aktuellen Figure abfragen? Ich möchte in folgendem Codein der letzten Zeile, bei der Namensgebung das "f2_"+... ersetzen, indem ich es abfrage.
import matplotlib.pyplot as plt
import time
import numpy as np
timestr = time.strftime("%Y%m%d-%H%M%S")
x = -50 + np.random.random((2500,1))*100
y = x**2
f2=plt.figure()
plt.scatter(x, y, s = 1)
plt.title('test')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
f2.savefig("f2_"+timestr+".pdf", bbox_inches='tight')
import matplotlib.pyplot as plt
from datetime import datetime as DateTime
import numpy as np
x = -50 + np.random.random((2500,1))*100
y = x**2
fig, ax = plt.subplots()
ax.scatter(x, y, s = 1)
ax.set_title('test')
ax.xlabel('x')
ax.ylabel('y')
fig.show()
fig.savefig(f"{ax.get_title()}_{DateTime.now():%Y%m%d-%H%M%S}.pdf", bbox_inches='tight')
@ Kirikkayis
Mit ersterem kann ich einen figure.Figure Typ erzeugen, mit dem zweiten ein int mit dem Inhalt 1.
@ Sirius3
Meine Frage war schlecht formuliert, es geht mir nich um den Namen im Sinne des Titels sondern am Anfang erzeuge ich die leere figure mit f2=plt.figure(). Dieses "f2" möchte ich nun hinterher wieder abfragen und zum Abspeichern als Namesteil mitverwenden.
Gibt es auch ein f1 und ein f3? Das Durchnunmerieren von Variablen deutet darauf hin, dass man eine Datenstruktur verwenden möchte.
Wie __deets__ schon schrieb: der Variablenname ist eh schon schlecht. Eigentlich sollte der "figure" lauten.
Und wenn du die Datei "fig2" nennen willst, dann tu das dort, wo du sie speicherst.
Was willst du den wirklich erreichen? Ich vermute, du denkst mit dem Benennnen einer Datei nach dem Namen einer Variable löst du ein Problen. Da bist du auf dem Holzweg. Wenn du uns das Problem nennst, sagen wir dir, wie es eigentlich gelöst wird.
In der folgenden Zeile kommt das f2 eben zweimal vor. Einmal zu Beginn, um klarzustellen das figure f2 abgespeichert werden soll und danach nochmal in der Namensgebung der Datei. Die Idee war, diese Dopplung zu vermeiden, indem bei der Namensgebung das f2, welches am Anfang der Zeile eingegeben wurde, irgendwie abgefragt wird.
@ytm81524: Ich verstehe übrigens noch immer nicht, warum im Dateinamen der Variablenname enthalten sein muss.
Wenn du wirklich Dopplung vermeiden willst, kapsel das ganze in einer Funktion. Bisher scheint das nämlich alles sehr statisch und unflexibel. Dann ist der Name der Variable eh egal.