連続値を使ってMatplotlibの散布図に色を付ける方法
Matplotlibで散布図を連続的な数値に基づいて着色するには、scatter()メソッドのc引数に連続値を渡し、カラーマップ(cmap)を指定します。さらに、カラーバーを追加することで、色と数値の対応関係を視覚的に確認できます。
以下の手順で実装できます。
- 図のサイズを設定し、サブプロット間および周囲の余白を調整します。
- NumPyを使用して、x、y、z のランダムなデータ点を作成します。
- Figureとサブプロットのセットを作成します。
- 散布図を作成します。このとき、
c=zでzの値に応じた着色を行い、cmapでカラーマップを指定します。 - 散布図のポイントをScalarMappableインスタンスとして、既存のAxesにカラーバーを描画します。
show()メソッドを使用して図を表示します。
コード例
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x, y, z = np.random.rand(3, 50) f, ax = plt.subplots() points = ax.scatter(x, y, c=z, s=50, cmap="plasma") f.colorbar(points) plt.show()
出力結果

ポイント解説
- c=z: 各点の色を決める連続値を指定します。ここではzの値がそのまま色の基準になります。
- cmap="plasma": 使用するカラーマップを指定します。他にも「viridis」「jet」「coolwarm」など様々なカラーマップが利用可能です。
- s=50: 散布図のマーカーサイズを指定します。
- f.colorbar(points): scatter()の戻り値を渡すことで、そのデータ範囲に対応したカラーバーが自動的に生成されます。
この方法を使えば、3次元目の情報(z値)を色として表現できるため、2次元の散布図でも多次元データを直感的に可視化できます。
-
MatplotlibでRectangle(長方形)に色を設定する方法
Matplotlibで長方形(Rectangle)に色を設定するには、以下の手順に従います。手順figure() メソッドを使用して、新しい図(Figure)を作成するか、既存の図をアクティブにします。add_subplot() メソッドを使用して、サブプロット構成の一部として図に ~.axes.Axes を追加します。長方形は、アンカーポイント(基準座標)と幅・高さを指定することで定義できます。作成したRectangleパッチを add_patch() でプロットに追加します。xlim() および ylim() メソッドを使用して、x軸とy軸の表示範囲を設定します。図を表示するには、show
-
Matplotlibのカラーマップで特定の値の色を再定義する方法
Matplotlibのカラーマップにおいて、特定の値に対応する色を再定義したい場合は、以下の手順で実現できます。 get_cmap() メソッドを使用してカラーマップのインスタンスを取得します。引数 name が None の場合、rcParams のデフォルト設定値が使用されます。ここでは「gray」カラーマップを指定しています。 set_under() メソッドを使用して、norm.clip = False の場合に正規化範囲より下側(低い値)として扱われるデータに割り当てる色を設定します。これにより、閾値未満の値を任意の色で強調表示できます。 imshow() メソッドを使用して、デー