Computer >> Máy Tính >  >> Lập trình >> Python

Tạo hoạt ảnh cho đồ thị 3D xoay trong Matplotlib

Để tạo biểu đồ 3D xoay trong matplotlib, chúng ta có thể sử dụng Hoạt ảnh lớp để gọi một hàm liên tục.

Các bước

  • Khởi tạo các biến cho số lượng lưới mắt lưới, tần số mỗi giây để gọi một hàm, số khung.

  • Tạo mảng x, y và z cho một đường cong.

  • Tạo một hàm tạo mảng z bằng hàm lambda.

  • Để chuyển một hàm vào lớp hoạt ảnh, hãy tạo một hàm do người dùng định nghĩa để xóa biểu đồ trước đó và vẽ biểu đồ bề mặt bằng cách sử dụng x, y và zarray.

  • 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 phương thức subplots ().

  • Đặt giới hạn trục Z bằng cách sử dụng set_zlim () phương pháp.

  • Gọi hoạt ảnh lớp để tạo hiệu ứng cho biểu đồ bề mặt.

  • Để hiển thị cốt truyện hoạt hình, 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.00, 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)
ani.save('526.gif')

plt.show()

Đầu ra

Tạo hoạt ảnh cho đồ thị 3D xoay trong Matplotlib