Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Vẽ bề mặt 3D từ danh sách tuple trong Matplotlib

Để vẽ bề mặt 3D (3D surface) từ danh sách tuple trong Matplotlib, bạn có thể thực hiện theo các bước sau:

Các bước thực hiện

  • Thiết lập kích thước hình vẽ và điều chỉnh khoảng cách giữa các subplot.
  • Tạo danh sách các tuple (x, y, z).
  • Trích xuất x, y, z từ danh sách tuple bằng zip(*data).
  • Tạo ma trận tọa độ bằng np.meshgrid().
  • Tính dữ liệu h cho surface plot (ví dụ: h = x² + y²).
  • Tạo figure mới hoặc kích hoạt figure hiện có.
  • Lấy trục hiện tại 3D.
  • Tạo surface plot.
  • Sử dụng phương thức show() để hiển thị hình vẽ.

Ví dụ minh họa

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# Danh sách tuple (x, y, z)
data = [(1, 3, 2), (3, 5, 2), (4, 7, 4), (8, 7, 4),
        (3, 6, 1), (3, 9, 0), (3, 9, 0)]

# Trích xuất x, y, z
x, y, z = zip(*data)
x, y = np.meshgrid(x, y)
h = x ** 2 + y ** 2

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_surface(x, y, h, cmap='plasma')

plt.show()

Kết quả đầu ra

Biểu đồ bề mặt 3D với colormap 'plasma' được tạo từ dữ liệu tuple đầu vào.