Để 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.