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

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」カラーマップで色分けされます。図の右側には、色と数値の対応を示すカラーバーが表示されます。

Matplotlibでカラーバー付きの3D散布図をプロットする方法

ポイント解説

  • c=xs:各点の色をxsの値に基づいて決定します。ysやzsなど任意の配列を指定可能です。

  • cmap="copper":使用するカラーマップを指定します。「viridis」「plasma」など他のカラーマップも利用できます。

  • plt.colorbar(sc):scatter()の戻り値を渡すことで、散布図の色の範囲に対応したカラーバーが自動的に生成されます。

  1. Matplotlibでカラーバー付き2D行列をPythonでプロットする方法

    Pythonでカラーバー付きの2D行列をプロットするには、numpyを使って2次元配列(行列)を作成し、そのデータをimshow()メソッドに渡すのが最も簡単な方法です。手順numpyを使用して data2D という2次元配列を作成します。imshow() メソッドを使い、データを画像として(2次元の正規ラスタ上に)表示します。colorbar() メソッドに imshow() が返す ScalarMappable インスタンスを渡し、カラーバーを作成します。これにより、色と数値の対応関係がひと目でわかるようになります。図を表示するには、show() メソッドを使用します。コード例import

  2. Matplotlibで任意のデータを使って4Dプロットを作成する方法

    Matplotlibでは、x・y・z の3つの座標データに加え、c(色) を第4の次元として割り当てることで、いわゆる「4Dプロット」を実現できます。これは実際には3D散布図にカラーマップを組み合わせたものであり、点の位置が3次元情報を、色がもう1つの変数を表現します。以下の手順に従うことで、標準正規分布に従うランダムなデータポイントを使った4Dプロットを簡単に作成できます。手順figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。サブプロット構成の一部として、3D投影(projection=3d)を指定した Axes を追加します。NumPy を使って x