Jupyter Notebook(Python&Matplotlib)で3Dプロットをインタラクティブに表示する方法
この記事では、Jupyter Notebookを使って3Dプロットをインタラクティブに操作・表示するためのプログラムコードを紹介します。マウスでドラッグして視点を回転させたり、拡大縮小したりできるため、3Dデータの把握が格段にしやすくなります。
手順
新しい図(figure)を作成するか、既存の図をアクティブにします。
subplotsメソッド(またはadd_subplotメソッド)を使ってfigとaxの変数を作成します。デフォルトのnrowsとncolsは1で、projection='3d' を指定することで3D描画が可能になります。
np.cos関数とnp.sin関数を使用して、x、y、zの座標データを生成します。
plot_wireframeメソッドでx、y、zを渡し、color="red" を指定して3Dワイヤーフレームを描画します。
set_titleメソッドで現在の軸(Axes)にタイトルを設定します。
plt.show()メソッドを呼び出して図を表示します。
サンプルコード
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
u, v = np.mgrid[0:2 * np.pi:30j, 0:np.pi:20j]
x = np.cos(u) * np.sin(v)
y = np.sin(u) * np.sin(v)
z = np.cos(v)
ax.plot_wireframe(x, y, z, color="red")
ax.set_title("Sphere")
plt.show()実行結果
このコードを実行すると、赤いワイヤーフレームで描かれた球体が表示されます。

補足:インタラクティブな操作について
Jupyter Notebook上で%matplotlib notebookマジックコマンド(またはJupyterLabでは%matplotlib widget)を実行しておくと、表示された3Dプロットをドラッグで回転させたり、スクロールでズームしたりできるようになります。静的な画像では確認しづらい立体的な構造も、自由な視点から観察できるのが大きなメリットです。
-
Python Matplotlibで密度マップをプロットする方法を徹底解説
PythonのMatplotlibを使って密度マップ(ヒートマップ)をプロットするには、pcolormesh()メソッドを利用するのが便利です。この記事では、NumPyでデータを生成し、擬似カラープロットとして可視化するまでの手順をコード例とともに解説します。 密度マップを描く基本の手順 NumPyを使ってside(軸の範囲)、x、y、zのデータを作成します。NumPyのlinspace関数を使うと、指定した区間を任意の分割数で等間隔にサンプリングしたデータを簡単に生成できます。 meshgrid()関数にsideのデータを渡し、1次元の座標ベクトルから2次元の座標行列(メッシュグリッド)
-
Matplotlibで画像を背景にしてグラフを重ねて表示する方法(Python)
Matplotlibでは、画像を背景として読み込み、その上にグラフや線を重ねて描画することができます。データを視覚的に分かりやすく表現したい場合に非常に便利なテクニックです。 実装手順 画像の背景の上にグラフをプロットするには、以下の手順に従います。 plt.imread() を使って、画像ファイルを読み込み配列として取得します。 plt.subplots() で図(fig)とサブプロット(ax)を作成し、extent=[0, 300, 0, 300] を指定して imshow() で画像を表示します。これにより、画像の座標系がx軸・y軸ともに0〜300の範囲に設定されます。 np.arra