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
- 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)