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

Matplotlibで数式を使って3D平面をプロットする方法

Pythonの可視化ライブラリMatplotlibを使えば、数学的な方程式から平面を簡単に3Dプロットできます。この記事では、NumPyと組み合わせて平面の方程式を描画する手順を、サンプルコード付きでわかりやすく解説します。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。

  • NumPyを使って xy のデータ点を作成します。

  • xy をもとに、平面の方程式 (eq) を計算します。

  • 新しい図を作成するか、既存の図をアクティブにします。

  • projection='3d' を指定して現在の軸(Axes)を取得します。

  • xyeq のデータ点を使ってサーフェスプロットを作成します。

  • plt.show() メソッドで図を表示します。

サンプルコード

import numpy as np
import matplotlib.pyplot as plt

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

x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)

x, y = np.meshgrid(x, y)
eq = 0.12 * x + 0.01 * y + 1.09

fig = plt.figure()

ax = fig.gca(projection='3d')

ax.plot_surface(x, y, eq)

plt.show()

コードの解説

np.linspace(-10, 10, 100) は -10 から 10 までの範囲を100等分した配列を生成します。その後、np.meshgrid() を使って1次元の配列を2次元のグリッドに変換することで、平面上のすべての座標点を扱えるようになります。

平面の方程式は eq = 0.12 * x + 0.01 * y + 1.09 という一般形 z = ax + by + c の形で定義されています。傾きとなる係数 a と b、切片 c の値を変更すれば、さまざまな角度や位置の平面を描くことができます。

なお、新しいバージョンのMatplotlibでは fig.gca(projection='3d') の代わりに、以下のように書くことが推奨されています。

ax = fig.add_subplot(projection='3d')

出力結果

上記のコードを実行すると、次のような3D平面が表示されます。

Matplotlibで数式を使って3D平面をプロットする方法

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

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

  2. MatplotlibとPythonで矢印プロット(Quiver Plot)を作成する方法を徹底解説

    Matplotlibは、データ可視化に広く活用されている人気のPythonパッケージです。データの可視化は分析において非常に重要なステップです。数値を一つひとつ確認したり複雑な計算を実行しなくても、データの中で何が起きているのかを直感的に把握できるようになるためです。また、定量的な洞察を効果的に伝える手段としても大きな力を発揮します。 Matplotlibは2次元のグラフやプロットを作成するために使用されます。オブジェクト指向APIを備えており、Pythonアプリケーション内にプロットを組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さ