グラフや画像を保存する方法【matplotlib】

matplotlibの保存の記事のアイキャッチmatplotlib

plotしたグラフを画像として保存

plotした画像を保存するにはplt.savefig()を使う
実際に以下のプログラムでは下のsinグラフが保存される

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-3, 3, 0.01)
y = np.sin(x)
plt.plot(x, y)

#png, jpg, svg, pdf ...を指定可能
plt.savefig("sin.png")
sinグラフ

numpy配列(画像など)を画像として保存する方法

画像処理などをした後、保存したい時にsavefig()を使用してしまうと、目盛が着いてしまったりして鬱陶しい。(目盛だけ消すこともできるけど…)

そこで、numpy配列を直接画像として保存できるimsave()を使う

例えばカラー画像をグレースケール画像に変換する処理は以下のようにして書くことができる。

import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

img = Image.open('./fuji.png')
img_gray = img.convert('L')
img_array = np.asarray(img_gray)

plt.imsave("fuji-to-gray.png",img_array, cmap="gray")
グレースケールの富士山と五重の塔

コメント