matplotlibで論文用の図を作成
タイトルの通りの目的のためにmatplotlibの勉強をしたのでメモを残しておく。
次のnotebookのように図ごとに明示的にmatplotlibのrcを指定してプロット用の関数を作るのにとりあえず落ち着いている。
rc
plt.rcParams
を直接いじるのは好きでないので1、plt.rc_contextで設定を分離する。
rcparamsの設定はseabornのpaperスタイル が好きなのでこれをベースにする。
デフォルトのseaborn-paper
スタイルからの変更は以下の通り2
- グリッド線を細くする
- フォントをTimes New Romanに設定
- 上と右のspineを消す
- グリッド線をオブジェクトより後ろに置く
- tickを内側に向ける
図の大きさ
幅は1カラム分なら3.375インチ、2カラム分なら6.75インチ。 (高さは黄金比になるように選ぶといいらしい。)
保存時のdpiは300くらいにする。jupyter notebookを使っている場合、デフォルトのdpiは75とかなり小さいので注意。
plotter
FigureとAxesを引数に取りプロットする関数をつくると後から変更が加えやすい。
図の保存
余計な余白が入らないようにする:
fig.savefig(fname, bbox_inches="tight", pad_inches=0.0)
保存形式は後から編集できるpdfかepsが無難。
参照リンク
Times New Roman が使えない場合 qiita.com
結局公式ドキュメントが一番わかりやすい matplotlib.org
matplotlibのバージョンが古いが面白い github.com