Matplotlib 3D プロジェクション
このチュートリアルでは、mpl_toolkits
ライブラリの mplot3d
パッケージを使って Matplotlib で 3D プロットを作成する方法を説明します。
Matplotlib で 3D 軸をプロットする
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
axes = plt.axes(projection="3d")
axes.set_title("3d axes in Matplotlib", fontsize=14, fontweight="bold")
axes.set_xlabel("X")
axes.set_ylabel("Y")
axes.set_zlabel("Z")
plt.show()
出力:
これは、X
、Y
、Z
軸を持つ 3D プロットを作成します。Matplotlib の 3D プロットを作成するには、mpl_toolkits
ライブラリから mplot3d
パッケージをインポートします。mpl_toolkits
は、pip
を使って Matplotlib をインストールしている間にインストールされます。
Matplotlib の図に 3D 軸をプロットするのは 2D 軸のプロットに似ています。Matplotlib で 3D 軸をプロットするには、matplotlib.pyplot.axis()
で projection="3d"
を設定します。
Matplotlib のバージョンが 1.0
以上であることを確認してください。
Matplotlib での 3D 散布図
import numpy as np
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
x = np.random.randint(20, size=60)
y = np.random.randint(15, size=60)
z = np.random.randint(10, size=60)
fig = plt.figure(figsize=(8, 6))
axes = plt.axes(projection="3d")
axes.plot3D(x, y, z, color="red")
axes.set_title("3d Line plot in Matplotlib", fontsize=14, fontweight="bold")
axes.set_xlabel("X")
axes.set_ylabel("Y")
axes.set_zlabel("Z")
plt.tight_layout()
plt.show()
出力:
Matplotlib で 3D の線分プロットを作成します。Matplotlib で 3D 線画を作成するには、まず軸を作成してから plot3D()
メソッドを用いて 3D 線画を作成します。描画する点の X
、Y
、Z
座標を plot3D()
メソッドの引数として渡します。
Matplotlib での 3D 散布図
import numpy as np
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
x = np.random.randint(20, size=60)
y = np.random.randint(15, size=60)
z = np.random.randint(10, size=60)
fig = plt.figure(figsize=(8, 6))
axes = plt.axes(projection="3d")
axes.scatter3D(x, y, z, color="red")
axes.set_title("3d Sactter plot in Matplotlib", fontsize=14, fontweight="bold")
axes.set_xlabel("X")
axes.set_ylabel("Y")
axes.set_zlabel("Z")
plt.tight_layout()
plt.show()
出力:
Matplotlib で 3D 散布図を作成します。Matplotlib で 3D 散布図を作成するには、まず軸を作成してから scatter3D()
メソッドを用いて 3D 散布図を作成します。描画する点の X
、Y
、Z
座標を scatter3D()
メソッドの引数として渡します。
例えば、plot()
関数は 2 次元の線分プロットを作成し、plot3D()
は 3 次元の線分プロットを作成します。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn