Matplotlib で書いたグラフを画像として保存する方法

Matplotlib のグラフを画像として保存する方法

Matplotlib では作成したグラフ (プロット) を画像として保存する方法を提供しています。 Figureオブジェクトの savefig() 関数を呼ぶことで画像として保存できます。

例えば、「Matplotlib で基本的なグラフを描く方法」で表示したグラフを画像として保存する場合は、次のようにします。

import matplotlib.pyplot as plt

x = [0, 1, 2, 3, 4,  5]
y = [1, 2, 4, 3, 5, 10]

fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid()
ax.set(xlabel='x', ylabel='y', title='Hello!')
fig.savefig('fig1.png')

ポイントは10行目のsavefig()の呼び出しです。

ここでは 'fig1.png' というファイル名を渡しているので、fig1.pngという PNG 画像が作成されます。

なお、ファイル名を単に 'fig1' としても 'fig1.png' としてPNG画像が作成されます。これは savefig() 関数の既定のフォーマットが PNG であるからです。

Matplotlib の savefig() 関数で画像フォーマットを指定する方法

ファイル名から類推してフォーマットが決められる

上で説明したように savefig()関数の既定の画像フォーマットは PNG です。しかし、渡したファイル名に拡張子が含まれる場合は、拡張子から類推して画像フォーマットが決められます。

savefig()関数でサポートしている画像フォーマットには、Postscript, JPEG, PDF, PNG, RAW, SVG, TIFF, WEBP などがあり、以下が拡張子として指定された場合、それぞれのフォーマットとして画像が作成されます。

  • eps
  • jpeg
  • jpg
  • pdf
  • pgf
  • png
  • ps
  • raw
  • rgba
  • svg
  • svgz
  • tif
  • tiff
  • webp

明示的に画像フォーマットを指定する場合

明示的に画像フォーマットを指定する場合は、savefig()関数の formatオプションに画像フォーマット形式名を指定します。

例えばファイル fig1 を JPG 画像として作成するには、次のようにします。

fig.savefig('fig1', format='jpg')

Matplotlib で保存する画像の解像度を指定する方法

savefig()関数の dpi オプションには生成する画像の解像度を DPI (dots per inch) で指定できます。

例えば、解像度 300dpi で画像を作成するには、次のようにします。

fig.savefig('fig1.png', dpi=300)

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Python 入門