Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh mencipta plot permukaan 3D daripada koleksi mata menggunakan Matplotlib?

Bagaimanakah saya boleh mencipta plot permukaan 3D daripada koleksi mata menggunakan Matplotlib?

Susan Sarandon
Susan Sarandonasal
2024-10-28 03:45:30392semak imbas

How can I create a 3D surface plot from a collection of points using Matplotlib?

Memplot Permukaan dengan Titik dalam Ruang 3D menggunakan Matplotlib

Dalam artikel ini, kami meneroka cara mencipta plot permukaan yang merangkumi koleksi titik dalam ruang tiga dimensi menggunakan perpustakaan Matplotlib Python, terutamanya modul mplot3dnya.

Fungsi plot_surface dalam mplot3d memerlukan tatasusunan dua dimensi untuk argumen X, Y dan Z, bukannya senarai 3-tuple sebagai awak ada. Oleh itu, langkah pertama ialah menyediakan data anda ke dalam format yang diperlukan.

Untuk permukaan, tidak seperti plot garisan, anda memerlukan grid tatasusunan 2D yang mewakili domain. Menggunakan mata diskret, seperti 3-tuple yang anda miliki, memberikan cabaran kerana terdapat berbilang triangulasi berpotensi yang boleh mencipta permukaan.

Pertimbangkan kod Python ini yang menghasilkan permukaan licin, dengan f(x, y) = x^2 y:

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

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)

# Calculate the Z values for each point in X and Y
zs = np.array(fun(np.ravel(X), np.ravel(Y)))
Z = zs.reshape(X.shape)

# Plot the surface
ax.plot_surface(X, Y, Z)

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

plt.show()</code>

Dalam contoh ini, X dan Y ialah tatasusunan 2D yang mewakili domain, dan Z ialah tatasusunan nilai yang sepadan untuk setiap titik. Fungsi plot_surface menggunakan tatasusunan ini untuk mencipta permukaan licin. Pendekatan ini sesuai untuk permukaan yang ditakrifkan oleh fungsi matematik.

Walau bagaimanapun, jika data anda terdiri daripada titik 3D diskret semata-mata, anda mungkin perlu mempertimbangkan pilihan lain.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mencipta plot permukaan 3D daripada koleksi mata menggunakan Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn