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

Cách tạo animation pcolormesh trong Matplotlib

Animation pcolormesh với FuncAnimation, cập nhật set_array trên dữ liệu 3D.

  • fig, ax = subplots().
  • x, y, t linspace, meshgrid X3, Y3, T3.
  • G = (X3²+Y3²)*sin(2π T3/T3.max).
  • cax = ax.pcolormesh(x, y, G[:,:,0], vmin=-1, vmax=1, cmap='Blues').
  • fig.colorbar(cax).
  • animate(i): cax.set_array(G[:,:,i].flatten()).
  • FuncAnimation(fig, animate, frames=len(t)-1, interval=100).
  • ani.save('517.gif'), show().

Ví dụ

import numpy as np
from matplotlib import pyplot as plt, animation
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, ax = plt.subplots()
x = np.linspace(-3, 3, 91)
t = np.linspace(0, 25, 30)
y = np.linspace(-3, 3, 91)
X3, Y3, T3 = np.meshgrid(x, y, t)
sinT3 = np.sin(2 * np.pi * T3 / T3.max(axis=2)[..., np.newaxis])
G = (X3 ** 2 + Y3 ** 2) * sinT3
cax = ax.pcolormesh(x, y, G[:-1, :-1, 0], vmin=-1, vmax=1, cmap='Blues')
fig.colorbar(cax)
def animate(i):
    cax.set_array(G[:-1, :-1, i].flatten())
anim = animation.FuncAnimation(fig, animate, interval=100, frames=len(t) - 1)
anim.save('517.gif')
plt.show()

Kết quả

Animation pcolormesh dao động sóng đồng tâm, lưu thành file GIF.