Để tạo hoạt ảnh 3D plot_surface trong Matplotlib, chúng ta có thể thực hiện các bước sau−
- Khởi tạo các biến cho số lượng lưới mắt lưới (N) , tần số mỗi giây (fps) để gọi một hàm và số khung (frn) .
- Tạo x , y và z mảng cho một đường cong.
- Tạo một hàm để tạo một mảng z sử dụng hàm lambda.
- Để chuyển một hàm vào lớp hoạt ảnh , tạo một hàm do người dùng xác định để loại bỏ biểu đồ trước đó và vẽ biểu đồ bề mặt bằng cách sử dụng x , y và z-array.
- Tạo một hình mới hoặc kích hoạt một hình hiện có.
- Thêm một sắp xếp ô con bằng cách sử dụng ô con () phương pháp.
- Đặt giới hạn trục Z bằng cách sử dụng set_zlim () phương pháp.
- Gọi lớp hoạt ảnh để tạo hiệu ứng cho cốt truyện bề mặt.
- Để hiển thị hình này, hãy sử dụng show () phương pháp.
Ví dụ
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True N = 50 fps = 250 frn = 75 x = np.linspace(-4, 4, N + 1) x, y = np.meshgrid(x, x) zarray = np.zeros((N + 1, N + 1, frn)) f = lambda x, y, sig: 1 / np.sqrt(sig) * np.exp(-(x ** 2 + y ** 2) / sig ** 2) for i in range(frn): zarray[:, :, i] = f(x, y, 1.5 + np.sin(i * 2 * np.pi / frn)) def change_plot(frame_number, zarray, plot): plot[0].remove() plot[0] = ax.plot_surface(x, y, zarray[:, :, frame_number], cmap="afmhot_r") fig = plt.figure() ax = fig.add_subplot(111, projection='3d') plot = [ax.plot_surface(x, y, zarray[:, :, 0], color='0.75', rstride=1, cstride=1)] ax.set_zlim(0, 1.1) ani = animation.FuncAnimation(fig, change_plot, frn, fargs=(zarray, plot), interval=1000 / fps) ax.axis('off') plt.show()
Đầu ra