2016-05-05 8 views
1

私は図形の保存のデフォルト動作を制御するためにスタイルファイルを使用していて、ディレクトリ/Users/ben/.matplotlib/stylelibの下にsave-article.mplstyleを設定しています。matplotlibスタイルファイルのsavefig.directoryが動作しない

savefig.directory : ./Plots/ 

私は、現在のディレクトリ.を使用し、私はplt.savefig("test.pdf")のようなものと予想される出力を得ます。 ./Plots/を使用すると、ファイルは表示されません。それが役に立ちそうなら、私は完全にsave-article.mplstyleファイルを提供することができます。 Plotsディレクトリが現在存在し、plt.savefig("./Plots/test.pdf")のようなコマンドを使用してファイルを保存できます。スタイルファイルをロードした後にrcParamsをチェックすると、正しい情報がファイルに取り込まれます。

どうすればこの問題を解決できますか?

+1

'/プロット/'列にしてはいけません?あなたは絶対パスを使用して試してみました。が、相対的なものの代わりに? – kikocorreoso

+0

@kikocorreosoどちらの作品も。実際、 '' ./Plots/ ''を使うと、rcParamsファイルに '" '/Plots/' "'が含まれています。これは、パス自体に引用符があることを意味します。これはエラーです。 – blalterman

+0

Mmmm、mplstyleのロード後に 'rcParams'をチェックして、全てが正しいかどうかを調べることができますか?' import matplotlib; print(matplotlib.rcParams) ' – kikocorreoso

答えて

2

documentationに述べたように:

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

このオプションは、あなたが対話モードで動作するときに使用されていて、対話モードの保存アイコンをクリックしたときに、それはsavefig.directoryオプションで定義されたディレクトリを使用します。

あなたの最善の策は、あなたが使用するディレクトリを定義するためにos.pathまたはpathlibを使用することです:

import os 

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

# [...other code...] 

plt.savefig(os.path.join(basepath, 'figurename.pdf)) 
関連する問題