Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで画像のカラーマップを設定する方法

Matplotlibで画像のカラーマップを設定する方法

Matplotlibでは、imshow()関数のcmap引数を使うことで、画像にさまざまなカラーマップを簡単に適用できます。カラーマップとは、数値データを色へ変換するための対応表のことで、「hot」「viridis」「gray」など多数の種類が用意されています。

ここでは、画像ファイルを読み込み、そのうちの1つのチャンネルを取り出して「hot」カラーマップで表示する手順を解説します。

手順

  • 図のサイズと余白を設定する: plt.rcParams["figure.figsize"]で図のサイズを指定し、figure.autolayoutを有効にしてサブプロット間・周囲の余白を自動調整します。
  • 画像を読み込む: imread()メソッドでファイルから画像を読み込み、NumPy配列として取得します。
  • 1つのチャンネルを選択する: カラー画像はRGBなど複数のチャンネルを持つため、ここでは最初のチャンネル(赤)を輝度画像として取り出します。
  • 画像を表示する: imshow()で2D配列を通常のラスター画像として描画し、cmap="hot"を指定します。
  • 軸を非表示にする: plt.axis('off')で軸をオフにし、画像だけをきれいに見せます。
  • 図を表示する: show()メソッドを実行して結果を確認します。

コード例

from matplotlib import pyplot as plt, image as mimg

# 図のサイズとレイアウトを設定
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 画像ファイルを読み込む
img = mimg.imread('bird.jpg')

# 最初のチャンネル(赤)を取り出す
lum_img = img[:, :, 0]

# 「hot」カラーマップで表示
plt.imshow(lum_img, cmap="hot")

# 軸を非表示にする
plt.axis('off')

plt.show()

出力結果

Matplotlibで画像のカラーマップを設定する方法

このコードを実行すると、読み込んだ画像が黒→赤→黄→白へと変化する「hot」カラーマップで着色されて表示されます。cmap引数の値を変更すれば、「viridis」「plasma」「coolwarm」など他のカラーマップも同じ方法で簡単に試すことができます。データの特徴を視覚的に強調したい場合に、カラーマップの使い分けは非常に有効です。

  1. 【Python】Matplotlibで軸の目盛りを円周率(π)の倍数で表示する方法

    PythonのMatplotlibでグラフを描く際、軸の目盛りをπ(円周率)の倍数で表示したいケースはよくあります。特に三角関数のグラフでは、「−π/2」「π」「3π/2」のような目盛りラベルにすることで、グラフが格段に読みやすくなります。 ここでは、numpyとMatplotlibを使って、X軸の目盛りをπの倍数として設定する手順を解説します。 設定手順 pi変数を初期化し、numpyを使ってthetaおよびyのデータ点を作成します。 plot()メソッドでthetaとyをプロットします。 xticks()メソッドで、X軸の目盛りの位置とラベルを取得・設定します。 margins()メソッ

  2. Matplotlibで画像を背景にしてグラフを重ねて表示する方法(Python)

    Matplotlibでは、画像を背景として読み込み、その上にグラフや線を重ねて描画することができます。データを視覚的に分かりやすく表現したい場合に非常に便利なテクニックです。 実装手順 画像の背景の上にグラフをプロットするには、以下の手順に従います。 plt.imread() を使って、画像ファイルを読み込み配列として取得します。 plt.subplots() で図(fig)とサブプロット(ax)を作成し、extent=[0, 300, 0, 300] を指定して imshow() で画像を表示します。これにより、画像の座標系がx軸・y軸ともに0〜300の範囲に設定されます。 np.arra