欢迎访问宙启技术站
智能推送

利用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()函数成功地制作了一个实时更新的等高线图的动画效果。