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 サイトの他の関連記事を参照してください。