Matplotlibで行列の値とカラーマップを一緒に表示する方法
データ分析や機械学習の現場では、2次元配列(行列)の中身を視覚的に確認したい場面が多くあります。Matplotlibの matshow() 関数を使えば、行列の値を色の濃淡で表現するヒートマップを簡単に描画でき、さらに各セルの中央に実際の数値を重ねて表示することも可能です。
Matplotlibで行列の値とカラーマップを同時に表示するには、以下の手順に従います。
- 図のサイズを設定し、サブプロット間およびその周囲のパディングを調整します。
- 図(figure)とサブプロットのセットを作成します。
- 行列の最大値と最小値を初期化します。
- 2次元の行列や配列の値を、色分けされた画像(カラーマップ)としてプロットします。
- 色分け画像の各セルを反復処理し、セルの中央に対応する値をテキストとして配置します。
- 図を表示するには、show() メソッドを使用します。
コード例
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, ax = plt.subplots()
min_val, max_val = 0, 5
matrix = np.random.randint(0, 5, size=(max_val, max_val))
ax.matshow(matrix, cmap='ocean')
for i in range(max_val):
for j in range(max_val):
c = matrix[j, i]
ax.text(i, j, str(c), va='center', ha='center')
plt.show()
コードのポイント
- np.random.randint() で0〜4のランダムな整数値を持つ5×5の行列を生成しています。
- ax.matshow(matrix, cmap='ocean') により、行列の値が「ocean」カラーマップの色の濃淡として描画されます。
- ax.text(i, j, str(c), va='center', ha='center') の部分で、各セルの座標(i, j)にそのセルの値を中央揃えで配置しています。これにより、色だけでなく具体的な数値も一目で確認できます。
出力結果


このように、matshow() と text() を組み合わせることで、色による直感的な把握と正確な数値確認の両方を実現できます。相関行列や混同行列などの可視化にも応用できる便利なテクニックです。
-
PythonのMatplotlibで円グラフを作成・表示する方法【初心者向け解説】
Matplotlibは、データ可視化のために広く利用されている人気のPythonライブラリです。データの可視化は分析において非常に重要なステップであり、複雑な数値計算の結果を目で見て理解しやすくしてくれます。数値を一つひとつ確認しなくても、データ全体の傾向や構成を直感的に把握できるため、定量的な洞察を効果的に伝える手段として活用されています。Matplotlibは主に2次元のグラフやプロットを作成するために使用され、オブジェクト指向のAPIを備えているため、Pythonアプリケーションへの組み込みも容易です。IPythonシェル、Jupyter Notebook、Spyderなどの開発環境と組
-
SciPyを使ってPythonで行列の行列式を計算する方法
行列式(determinant)は、行列や多次元配列に対して計算できる重要なスカラー値です。行列や配列の性質をより深く理解したい場合、この行列式の計算が必要になることがあります。 SciPyの「det」関数について SciPyには、「linalg」モジュール(線形代数:Linear Algebraの略称)の中に「det」という関数が用意されており、これを使うことで行列式を簡単に求めることができます。 det関数の構文 scipy.linalg.det(matrix) 引数「matrix」には、行列式を求めたい行列または配列を渡します。この関数は、行列や配列を引数として渡すだけで呼び出すことがで