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

MatplotlibのAxes3Dでズームする方法を解説!3Dプロットの拡大表示テクニック

MatplotlibのAxes3Dでズームする方法

MatplotlibのAxes3Dを使って3Dプロットを作成する際、ズーム機能を活用するとデータの細部をより詳しく確認できます。この記事では、3D散布図を作成してズーム可能な状態で表示するための基本的な手順を、コード例とともにわかりやすく解説します。

実装手順

  1. 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  2. figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。
  3. Axes3D(fig)メソッドを使用して、3D軸オブジェクトを取得します。
  4. scatter()メソッドを使用して、x・y・zの各データ点をプロットします。
  5. show()メソッドを使用して、図を画面に表示します。

コード例

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt

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

fig = plt.figure()
ax = Axes3D(fig)
x = [2, 4, 6, 3, 1]
y = [1, 6, 8, 1, 3]
z = [3, 4, 10, 3, 1]

ax.scatter3D(x, y, z, c=z, alpha=1, marker='d', s=150)
plt.show()

出力結果

MatplotlibのAxes3Dでズームする方法を解説!3Dプロットの拡大表示テクニック

ズーム操作のポイント

上記のコードを実行して表示されるウィンドウでは、マウスホイールやツールバーのズームボタンを使って、プロットの拡大・縮小を自由に行えます。ドラッグ操作で視点を回転させながら確認できるのも、3Dプロットならではの利点です。

また、プログラム側で表示範囲を制御したい場合は、軸の範囲を明示的に指定する方法も有効です。

ax.set_xlim(0, 8)
ax.set_ylim(0, 10)
ax.set_zlim(0, 12)

このように各軸の最小値・最大値を狭く設定することで、特定の領域にズームインしたような表示を実現できます。データの分布が偏っている場合や、注目したいクラスタがある場合に特に便利です。


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

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

  2. PythonのMatplotlibで中空(白抜き)の四角形マーカーを描画する方法

    Matplotlibで中空(塗りつぶしなし)の四角形マーカーを描くには、マーカーの種類に ks を指定し、markerfacecolor=none、markersize=15、markeredgecolor=red を設定します。これにより、枠線だけの白抜きスタイルの四角形マーカーが描画されます。 各パラメータの意味 ks:k は黒色(black)、s は四角形(square)を表すマーカースタイルです。 markerfacecolor=none:マーカーの内部を塗りつぶさず、中空にします。 markersize(ms):マーカーのサイズを指定します(ここでは15)。 markeredgec