2016-05-05 18 views
1

Ich verwende eine Style-Datei, um das Standardverhalten meiner Figur speichern zu steuern und habe folgende in save-article.mplstyle unter dem Verzeichnis /Users/ben/.matplotlib/stylelib gesetzt. nurmatplotlib savefig.directory in Style-Datei funktioniert nicht

savefig.directory : ./Plots/ 

Wenn ich das aktuelle Verzeichnis . verwenden, erhalte ich die erwartete Ausgabe mit so etwas wie plt.savefig("test.pdf"). Wenn ich ./Plots/ verwende, wird die Datei nicht angezeigt. Ich kann meine volle save-article.mplstyle Datei zur Verfügung stellen, wenn das hilfreich ist. Das Verzeichnis Plots ist derzeit vorhanden, und ich kann Dateien mit Befehlen wie plt.savefig("./Plots/test.pdf") speichern. Wenn ich rcParams nach dem Laden der Style-Dateien überprüfe, werden die richtigen Informationen in die Datei eingetragen.

Wie kann ich das beheben?

+1

'/ Plots /' sollte kein String sein ?, haben Sie versucht, einen absoluten Pfad mit statt einer relativen? – kikocorreoso

+0

@kikocorreoso Keine Arbeit. Wenn ich "./Plots/" 'verwende, enthält die rcParams-Datei' "./Plots/'" ', was bedeutet, dass im Pfad selbst Anführungszeichen stehen, was ein Fehler ist. – blalterman

+0

Mmmm, könntest du deine 'rcParams' nach dem Laden deines mplstyle überprüfen, um zu sehen, ob alles richtig ist,' matplotlib importieren; print (matplotlib.rcParams) ' – kikocorreoso

Antwort

2

Wie in der documentation erklärte:

#savefig.directory : ~  # default directory in savefig dialog box, 
           # leave empty to always use current working directory 

Diese Option wird verwendet, wenn Sie im interaktiven Modus arbeiten und wenn Sie in der speichern Symbol des interaktiven Modus klicken, wird es das Verzeichnis, in savefig.directory Option definiert verwenden .

Ihre beste Wette wäre os.path oder pathlib verwenden, um das Verzeichnis, das Sie verwenden möchten, definieren.

import os 

basepath = os.path.abspath('Plots') 

# [...other code...] 

plt.savefig(os.path.join(basepath, 'figurename.pdf)) 
Verwandte Themen