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

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

Matplotlibでは、x・y・z の3つの座標データに加え、c(色) を第4の次元として割り当てることで、いわゆる「4Dプロット」を実現できます。これは実際には3D散布図にカラーマップを組み合わせたものであり、点の位置が3次元情報を、色がもう1つの変数を表現します。

以下の手順に従うことで、標準正規分布に従うランダムなデータポイントを使った4Dプロットを簡単に作成できます。

手順

  • figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。

  • サブプロット構成の一部として、3D投影(projection='3d')を指定した Axes を追加します。

  • NumPy を使って x、y、z、c の各データポイントを生成します。

  • scatter() メソッドで散布図を作成し、c 引数に色データ、cmap 引数にカラーマップを指定します。

  • show() メソッドで図を表示します。

コード例

from matplotlib import pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)
c = np.random.standard_normal(100)

img = ax.scatter(x, y, z, c=c, cmap='YlOrRd', alpha=1)
plt.show()

実行結果

このコードを実行すると、x・y・z の空間上に100個の点がプロットされ、それぞれの点は c の値に応じて「YlOrRd」(黄〜オレンジ〜赤)のカラーマップで色分けされます。これにより、3次元の位置関係と第4の変数の分布をひとつのグラフで直感的に把握できます。

なお、alpha=1 は不透明度を表しており、値を下げると点が半透明になり、重なり合う部分を見やすくできます。また、fig.colorbar(img) を追加すれば、色がどの値に対応しているかを示すカラーバーも表示でき、より読みやすいグラフになります。

  1. Matplotlibで日時軸上に長方形をプロットする方法を解説

    Matplotlibを使用して日時(datetime)軸上に長方形を描画するには、以下の手順に従います。図のサイズを設定し、サブプロット間および周囲のパディングを調整します。新しい図を作成するか、既存の図をアクティブにします。add_subplot()メソッドを使って、サブプロット配置の一部として図にAxes(軸オブジェクト)を追加します。長方形を定義するために、Pythonのdatetimeとmatplotlib.datesを組み合わせて、アンカーとなる基準点を求めます。add_patch()メソッドを使って、軸にPatch(長方形パッチ)を追加します。x軸の主目盛りに対してロケーターとフォ

  2. Python Matplotlibで3Dグラフをプロットする方法を解説

    PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使