yonesuke’s diary

日々精進

matplotlibで論文に載せられる図を作成する

論文を書くときに数値計算結果等の図を添付することがしばしばあります。 昔はgnuplotのepslatexとかを使って図にlatexをかけるようにしていましたが、かなりめんどくさかったです。 最近はmatplotlibを使ってい論文に載せられるくらいきれいな図を簡単に作れるので、備忘録もかねてここにまとめておきます。

pythonコードを実行する環境にはlatexも実行可能な環境であることが前提条件です。 (そのためサーバー上で図を作成するときとかはうまく動かないことがあります。)

gist.github.com

f:id:yonesuke1729:20210320210921p:plain

二次関数のグラフが作成できました。

補足

  • latexを使ったラベル等を有効化するには次のように書いておきます。
plt.rcParams["text.usetex"] = True
  • latexコンパイルするのに必要なパッケージはこのように書いておきます。
plt.rcParams["text.latex.preamble"] = r"\usepackage{amsmath,bm}"

(今回はamsmathbmも使っていないので書く必要はありませんが。)

  • PRE等の2段組みの論文ではfigsize=[8, 6]としておくとなんだかいい感じです。
plt.figure(figsize=[8, 6])
  • matplotlibはデフォルトだといくらか余白ができますが、論文に載せる図にはあまり余白を入れたくありません。 その場合には、保存するときに次のオプションを入れておきましょう。
plt.savefig("out.png", bbox_inches="tight")

あと、latexで論文を書いているとepsとかpdfで図を作成しておきたいです。 その場合には保存する拡張子を対応するものにしておきましょう。