利用matplotlib.animation.FuncAnimation()制作实时更新的等高线图
发布时间:2023-12-16 07:33:32
matplotlib.animation.FuncAnimation()是一个用于制作实时更新的动画效果的函数。在绘制等高线图时,我们可以使用这个函数实现动态显示等高线图的效果。下面是一个使用例子:
首先,需要引入需要的包:
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation
接下来,我们需要设置一些参数,包括等高线图的范围和步长,以及时间步长等。
x = np.linspace(-10, 10, 100) y = np.linspace(-10, 10, 100) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) fig, ax = plt.subplots() c = ax.contourf(X, Y, Z)
然后,我们需要定义一个函数用来更新等高线图的数据。
def update(i):
ax.cla() # 清除原有图像
Z = np.sin(np.sqrt(X**2 + Y**2 + i/10)) # 更新等高线图数据
c = ax.contourf(X, Y, Z) # 绘制等高线图
最后,我们使用animation.FuncAnimation()来制作动画效果。
ani = animation.FuncAnimation(fig, update, frames=100, interval=200) plt.show()
在例子中,我们定义了一个函数update(i),其中i是一个参数,表示时间步长。在update函数中,我们清除了原有的图像,然后根据新的时间步长来计算新的等高线图的数据,并用ax.contourf()函数绘制新的等高线图。frames参数表示总共的帧数,interval表示每帧之间的时间间隔,单位是毫秒。最后使用plt.show()来显示动画效果。
这样,我们就通过animation.FuncAnimation()函数成功地制作了一个实时更新的等高线图的动画效果。
