Ví dụ minh họa cách đạt hiệu ứng tương đương surf(x,y,z,c) của Matlab trong Matplotlib.
Các bước
- Thiết lập kích thước figure và padding
- Tạo figure mới
- Thêm
ax3D - Tạo dữ liệu
r, u, v, x, y, zbằng Numpy - Tạo surface plot
- Hiển thị bằng
show()
Ví dụ mã nguồn
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig = plt.figure() ax = fig.add_subplot(projection='3d') r = 0.05 u, v = np.mgrid[0:2 * np.pi:30j, 0:np.pi:20j] x = np.cos(u) * np.sin(v) y = np.sin(u) * np.sin(v) z = np.cos(v) ax.plot_surface(x, y, z, cmap=plt.cm.YlGnBu_r) plt.show()
Kết quả
Bề mặt cầu 3D với colormap YlGnBu_r (vàng-xanh-lục-lam ngược).

So sánh Matlab vs Matplotlib:
- Matlab:
surf(x, y, z, c)- c là màu - Matplotlib:
ax.plot_surface(x, y, z, facecolors=c, cmap=...)hoặcax.plot_surface(x, y, z, cmap=...)vớicmap vào colormap - Để dùng màu tùy biến:
facecolors=plt.cm.viridis(c)