Matplotlibでカラーバー付きの3D散布図をプロットする方法
Matplotlibで3Dグラフにカラーバー付きの散布点をプロットするには、scatter()メソッドとcolorbar()メソッドを組み合わせて使用します。カラーバーを追加することで、データ値と色の対応関係を視覚的に把握でき、3次元データの解釈が格段に容易になります。
手順
図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
figure()メソッドを使用して、新しい図を作成するか既存の図をアクティブにします。
add_subplot()メソッドで
projection="3d"を指定し、3D軸をサブプロットとして追加します。NumPyを使ってxs・ys・zsの各データポイントを生成します。
scatter()メソッドで3D散布図を作成します。このときc引数で色の基準となる値を、cmap引数でカラーマップを指定します。
scatter()の戻り値であるスカラー mappable インスタンスをcolorbar()メソッドに渡し、カラーバーを表示します。
show()メソッドで図を表示します。
コード例
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig = plt.figure() ax = fig.add_subplot(projection="3d") xs = np.random.rand(100) ys = np.random.rand(100) zs = np.random.rand(100) sc = ax.scatter(xs, ys, zs, c=xs, cmap="copper") plt.colorbar(sc) plt.show()
実行結果
上記のコードを実行すると、0から1までの一様乱数で生成された100個の点が3D空間にプロットされ、xsの値に応じて「copper」カラーマップで色分けされます。図の右側には、色と数値の対応を示すカラーバーが表示されます。

ポイント解説
c=xs:各点の色をxsの値に基づいて決定します。ysやzsなど任意の配列を指定可能です。
cmap="copper":使用するカラーマップを指定します。「viridis」「plasma」など他のカラーマップも利用できます。
plt.colorbar(sc):scatter()の戻り値を渡すことで、散布図の色の範囲に対応したカラーバーが自動的に生成されます。
-
Matplotlibでカラーバー付き2D行列をPythonでプロットする方法
Pythonでカラーバー付きの2D行列をプロットするには、numpyを使って2次元配列(行列)を作成し、そのデータをimshow()メソッドに渡すのが最も簡単な方法です。手順numpyを使用して data2D という2次元配列を作成します。imshow() メソッドを使い、データを画像として(2次元の正規ラスタ上に)表示します。colorbar() メソッドに imshow() が返す ScalarMappable インスタンスを渡し、カラーバーを作成します。これにより、色と数値の対応関係がひと目でわかるようになります。図を表示するには、show() メソッドを使用します。コード例import
-
Matplotlibで任意のデータを使って4Dプロットを作成する方法
Matplotlibでは、x・y・z の3つの座標データに加え、c(色) を第4の次元として割り当てることで、いわゆる「4Dプロット」を実現できます。これは実際には3D散布図にカラーマップを組み合わせたものであり、点の位置が3次元情報を、色がもう1つの変数を表現します。以下の手順に従うことで、標準正規分布に従うランダムなデータポイントを使った4Dプロットを簡単に作成できます。手順figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。サブプロット構成の一部として、3D投影(projection=3d)を指定した Axes を追加します。NumPy を使って x