Ploting Permukaan dalam Matplotlib
Apabila bekerja dengan data spatial, penjanaan permukaan boleh memberikan cerapan berharga. Dalam Matplotlib, fungsi plot_surface digunakan untuk tujuan ini. Walau bagaimanapun, ia memerlukan input dalam bentuk tatasusunan 2D, menjadikannya tidak serasi dengan senarai 3-tuple yang mewakili titik 3D.
Transformasi Data
Untuk memplot permukaan daripada 3-tuple, kita perlu menukar data ke dalam format yang diperlukan. Memandangkan data yang diberikan tidak mempunyai sebarang fungsi asas f(x, y), kita mesti menyegitiga titik untuk mencipta permukaan.
Trianulasi dan Transformasi
Untuk proses triangulasi , kita boleh menggunakan fungsi [triangulate_points](https://matplotlib.org/stable/gallery/mplot3d/triangulation_demo.html). Ia menjana senarai segi tiga yang menyambungkan titik yang disediakan, dengan berkesan mewujudkan jaringan permukaan.
Setelah disegitiga, kita boleh mendapatkan tatasusunan 2D yang diperlukan untuk X, Y dan Z. Tatasusunan ini mewakili koordinat bucu untuk setiap segi tiga.
Memplot Permukaan
Dengan data yang diubah, kita kini boleh menggunakan plot_surface:
<code class="python">import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.art3d import Poly3DCollection # List of 3-tuples representing points data = [(x1, y1, z1), (x2, y2, z2), ...] # Triangulate the points triangles = triangulate_points(data) # Extract 2D arrays for X, Y, and Z X, Y, Z = zip(*triangles) # Plot the surface fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot_surface(X, Y, Z) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()</code>
Skrip ini akan menjana permukaan licin yang meliputi mata 3D yang diberikan.
Atas ialah kandungan terperinci Bagaimana untuk Memplot Permukaan daripada Senarai Titik 3D dalam Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!