ホームページ  >  記事  >  バックエンド開発  >  Matplotlib を使用して散乱データから滑らかな 3D サーフェスを作成する方法

Matplotlib を使用して散乱データから滑らかな 3D サーフェスを作成する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 07:11:02127ブラウズ

How to Create Smooth 3D Surfaces from Scattered Data Using Matplotlib?

Matplotlib を使用した曲面プロットの作成

3D 空間内の点を表す 3 タプルのリストを考慮し、これらの点をカバーする曲面を生成することがタスクです。

mplot3d パッケージの Lot_surface を使用するには、X、Y、Z の 2D 配列形式の入力データが必要です。指定されたデータ構造を変換するには、いくつかの考慮事項があります。

の場合面の場合は、線プロットとは異なり、2D 配列を使用してドメインをカバーするグリッドを定義する必要があります。 3D 点のリストのみを操作する場合、三角形分割が不可欠になります。これは、特定の点群に対して複数の可能な三角形分割が存在するためです。

滑らかな表面の場合、次のアプローチを採用できます。

<code class="python">import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random

def fun(x, y):
    return x**2 + y

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(-3.0, 3.0, 0.05)
X, Y = np.meshgrid(x, y)
zs = np.array(fun(np.ravel(X), np.ravel(Y)))
Z = zs.reshape(X.shape)

ax.plot_surface(X, Y, Z)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()</code>

このコードは、meshgrid を使用してグリッドを定義し、対応する Z 値を取得し、plot_surface を使用して表面プロットを作成します。結果として得られるサーフェスは、基礎となるデータを滑らかに表現します。

以上がMatplotlib を使用して散乱データから滑らかな 3D サーフェスを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。