Memandangkan senarai 3-tuple yang menandakan titik dalam ruang 3D, tugasnya adalah untuk menjana permukaan yang meliputi titik-titik ini.
Menggunakan plot_surface daripada pakej mplot3d memerlukan data input dalam bentuk tatasusunan 2D untuk X, Y dan Z. Untuk mengubah struktur data yang diberikan, terdapat pertimbangan tertentu yang perlu dibuat.
Dalam kes permukaan, tidak seperti plot garisan, anda perlu menentukan grid yang meliputi domain menggunakan tatasusunan 2D. Apabila bekerja dengan hanya senarai mata 3D, triangulasi menjadi penting. Ini kerana terdapat berbilang triangulasi untuk awan titik tertentu.
Untuk permukaan licin, pendekatan berikut boleh diambil:
<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>
Kod ini mentakrifkan grid menggunakan meshgrid, menjana nilai Z yang sepadan, dan mencipta plot permukaan menggunakan plot_surface. Permukaan yang terhasil memberikan gambaran yang lancar bagi data asas.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Permukaan 3D Licin daripada Data Bersebar Menggunakan Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!