matplotlibのフィギュアに3Dサブプロットを追加する方法
matplotlibで作成したフィギュアに3Dサブプロットを追加するには、projection='3d' を指定してサブプロットを作成します。ここでは、その具体的な手順とサンプルコードを紹介します。
3Dサブプロットを追加する手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- numpyを使用して、x・y・zのデータポイントを作成します。
- 新しいフィギュアを作成するか、既存のフィギュアをアクティブにします。
- fig.add_subplot() に projection='3d' を指定して、3D投影の「ax」をサブプロットとしてフィギュアに追加します。
- plot() メソッドを使って、x・y・zのデータポイントをプロットします。
- 最後に plt.show() メソッドを呼び出して、図を表示します。
サンプルコード
from matplotlib import pyplot as plt import numpy as np # 図のサイズを設定 plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True # numpyでx・y・zのデータポイントを作成 x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) z = x ** 2 + y ** 2 fig = plt.figure() # projection='3d' を指定してサブプロットを追加 ax = fig.add_subplot(111, projection='3d') # x・y・zのデータポイントをプロット ax.plot(x, y, z, color='red', lw=7) plt.show()
実行結果
上記のコードを実行すると、以下のような3D曲線が赤い太線で描画されたグラフが表示されます。

ポイント解説
fig.add_subplot(111, projection='3d') の引数「111」は、1行×1列のグリッドにおける1番目の位置にサブプロットを配置することを意味します。このように projection='3d' を指定するだけで、通常の2Dプロットと同じAPIで3次元データを扱えるようになります。
なお、曲面や散布図など別形式の3Dプロットを行いたい場合は、ax.plot_surface() や ax.scatter() などのメソッドも利用できます。
-
Matplotlibで特定のサブプロットをプログラムから選択・操作する方法
Matplotlibでは、同じ引数で add_subplot() を再度呼び出すことで、すでに作成済みの特定のサブプロット(Axesオブジェクト)を取得し、後から操作することができます。以下にその具体的な手順を示します。 特定のサブプロットを選択する手順 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。 figure() メソッドを使って、新しい図を作成するか、既存の図をアクティブにします。 配置したいサブプロットの数だけループ処理を行います。 ループ内で add_subplot() メソッドを使用し、サブプロットとして図に Axes オブジェクトを追加していき
-
FlaskでMatplotlibのグラフを表示する方法【サンプルコード付き】
Webアプリケーション上でグラフを動的に表示したい場合、FlaskとMatplotlibを組み合わせるのが効果的です。この記事では、Flaskアプリケーション内でMatplotlibのプロットをPNG画像としてブラウザに返す方法を、具体的な手順とサンプルコードとともにわかりやすく解説します。 実装の流れ FlaskでMatplotlibのグラフを表示するまでの基本的な手順は以下の通りです。 小さなFlaskアプリケーションを作成する カレントディレクトリに移動し、環境変数を設定してアプリを起動する$ export FLASK_APP=file.py$ flask run ブラウザで http