[Matplotlib] 画像の作成・読み込み・保存

[Matplotlib] 画像の作成・読み込み・保存

画像を作成する

 Axes.imshow() を使うと、NumPy の配列の各要素をピクセルとする画像を作ることができます。Axes.imshow() の最も簡単な使い方は、配列とカラーマップ (cmap) を指定する方法です。この場合、渡した配列によって、カラーマップは自動的に正規化されます。

# モジュールをインポート
import numpy as np
import matplotlib.pyplot as plt

# FigureとAxesを作成
fig = plt.figure()
ax = fig.add_subplot(111)

# NumPyの配列で色を指定
img = np.array([[0, 1, 2],
                [3, 4, 5],
                [6, 7, 8]])

# 配列の各要素をピクセルとする画像を表示
ax.imshow(img, "Reds")

imshow 画像作成

 カラーマップを自分で規格したい場合は、vmin と vmax を指定します。

# FigureとAxesを作成
fig = plt.figure()
ax = fig.add_subplot(111)

# NumPyの配列で色を指定
img = np.array([[10, 20, 30],
                [40, 50, 60],
                [70, 80, 90]])

# 配列の各要素をピクセルとする画像を表示
ax.imshow(img, "Reds", vmin = 0, vmax = 255)

imshow 画像作成02

画像を読み込む

 plt.imread() を使うと、外部の画像ファイルを読み込んで配列に格納することができます。たとえば、カレントディレクトリに BlogCat.jpg というファイルがある場合、次のコードで画像を表示させることができます。

# FigureとAxesを作成
fig = plt.figure()
ax = fig.add_subplot(111)

# 画像を読み込んで配列に格納
img = plt.imread("BlogCat.jpg")

# 画像を表示
ax.imshow(img)

BlogCatのプロフィール写真
 

画像を保存する

 savefig()関数を使うと、Matplotlib で作成した図をファイルに出力することができます。第 1 引数には保存先のファイル名を指定します。ファイル名には .png, .jpeg, .svg などの拡張子を添えて保存形式を決めます。パスを指定しなければ、ファイルはカレントディレクトリに保存されます。
 他にも dpi(解像度)や facecolor(塗り潰しの色)、edgecolor(枠線の色) などを指定することができます。tight_layout に True を渡すと余白を最小限にして出力します。

# 3次関数のグラフ (cubic.pngに保存)

# 必要なモジュールをインポート
import numpy as np
import matplotlib.pyplot as plt

# Figureを設定
fig = plt.figure(figsize = (6, 6))

# Axesを追加
ax = fig.add_subplot(111)

# Axes(サブプロット)のタイトルを設定
ax.set_title("Cubic Function", size = 16)

# x軸の範囲を設定
ax.set_xlim(-2, 10)
ax.set_ylim(-100, 75)

# xのデータを作成
x = np.arange(-2, 10, 0.1)

# yのデータを作成
f = x**3 - 9*x**2 + 4*x + 1

# 軸ラベルの設定
ax.set_xlabel("x", size = 14)
ax.set_ylabel("y", size = 14)

# 目盛線(グリッド)の表示
ax.grid()

# データをプロット
ax.plot(x, f, color = "darkblue")

# 保存先のファイル名(PNG形式)
fname = "cubic.png"

# ファイルを保存
plt.savefig(fname, dpi = 64,
            facecolor = "lightgray", tight_layout = True)

 
 実行結果として表示される図は次のようになります。

 Python savefig()による画像ファイルの出力と保存

 ファイルに出力されるグラフは次のようになります。

 Python savefig()による画像ファイルの出力と保存②