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

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曲線が赤い太線で描画されたグラフが表示されます。

matplotlibのフィギュアに3Dサブプロットを追加する方法

ポイント解説

fig.add_subplot(111, projection='3d') の引数「111」は、1行×1列のグリッドにおける1番目の位置にサブプロットを配置することを意味します。このように projection='3d' を指定するだけで、通常の2Dプロットと同じAPIで3次元データを扱えるようになります。

なお、曲面や散布図など別形式の3Dプロットを行いたい場合は、ax.plot_surface()ax.scatter() などのメソッドも利用できます。

  1. Matplotlibで特定のサブプロットをプログラムから選択・操作する方法

    Matplotlibでは、同じ引数で add_subplot() を再度呼び出すことで、すでに作成済みの特定のサブプロット(Axesオブジェクト)を取得し、後から操作することができます。以下にその具体的な手順を示します。 特定のサブプロットを選択する手順 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。 figure() メソッドを使って、新しい図を作成するか、既存の図をアクティブにします。 配置したいサブプロットの数だけループ処理を行います。 ループ内で add_subplot() メソッドを使用し、サブプロットとして図に Axes オブジェクトを追加していき

  2. FlaskでMatplotlibのグラフを表示する方法【サンプルコード付き】

    Webアプリケーション上でグラフを動的に表示したい場合、FlaskとMatplotlibを組み合わせるのが効果的です。この記事では、Flaskアプリケーション内でMatplotlibのプロットをPNG画像としてブラウザに返す方法を、具体的な手順とサンプルコードとともにわかりやすく解説します。 実装の流れ FlaskでMatplotlibのグラフを表示するまでの基本的な手順は以下の通りです。 小さなFlaskアプリケーションを作成する カレントディレクトリに移動し、環境変数を設定してアプリを起動する$ export FLASK_APP=file.py$ flask run ブラウザで http