matplotlibの図をPDFで出力するときの方法で2種類紹介します。
1枚の図をPDF出力するとき
1つの図をPDF出力するときは、単純に
plt.savefig("output.pdf")
とすればPDFが出力されます。同様にpngファイルを出力することも可能です。例は下のようになります。
import matplotlib.pyplot as plt
fig = plt.figure()
plt.plot([1,2,3,4,5],'o')
plt.title("test\n put some comment here")
plt.savefig("output.pdf")
plt.show()
複数ページはPdfPagesが便利
plt部分が画像として扱われるので、テキストをPDFに入れたいときは、plt.titleなどで図に埋め込むと簡単です。日本語を入れたいときは
フォント設定の解説参照のこと。
図を1ページのPDFに出力する
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
fig = plt.figure()
plt.plot([1,2,3,4,5],'o')
plt.title("test\n put some comment here")
plt.show()
# set path
pp = PdfPages('pdf_test.pdf')
# save figure
pp.savefig(fig)
# close file
pp.close()
これで下図がpdfで出力されます。pp.close()を忘れるとPDFが開けなくなります。そういうときは、後からでもpp.close()コマンドを実行するとOKです。
https://matplotlib.org/api/backend_pdf_api.html
複数ページのPDFとして出力する
条件を変えて図を出力します。5回繰り返して、色を(C0〜C4)で変えます。
pp = PdfPages('pdf_test.pdf')
for i in range(5):
fig = plt.figure()
plt.plot([1,2,3,4,5],'o', color='C'+str(i))
pp.savefig(fig)
pp.close()
こういう5ページのPDFが出力されたでしょうか?
ちなみに、fig単位ごとにPDF1枚ですので、subplotを使うと複数の図を1枚のPDFに出すこともできます。