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

利用matplotlib.animation.FuncAnimation()制作实时更新的折线图

发布时间:2023-12-16 07:27:32

利用matplotlib.animation.FuncAnimation()函数可以制作实时更新的折线图,可以用于展示数据的变化趋势或实时监测等应用场景。

下面是一个使用例子,展示如何实时更新折线图:

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np

# 创建一个空figure和一个子图
fig, ax = plt.subplots()
# 初始化折线
line, = ax.plot([], [])

# 设置坐标轴的范围
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)

# 初始化函数,用于创建空的折线
def init():
    line.set_data([], [])
    return line,

# 更新函数,用于更新折线的数据
def update(frame):
    x = np.linspace(0, 10, 1000)
    y = np.sin(2 * np.pi * (x - 0.01 * frame))
    line.set_data(x, y)
    return line,

# 创建动画
ani = animation.FuncAnimation(fig, update, init_func=init, interval=20, blit=True)

# 展示动画
plt.show()

在这个例子中,我们首先创建一个空的figure和一个子图。然后,我们通过初始化函数init()来创建一个空的折线。接着,我们通过更新函数update()来计算新的折线数据,并更新折线。在更新函数中,我们使用了np.linspace()函数来生成x轴的数据,使用了np.sin()函数来生成y轴的数据。然后,我们通过调用line.set_data()方法来设置折线的x轴和y轴的数据。最后,我们调用animation.FuncAnimation()函数来创建动画。

在创建动画时,我们需要指定更新函数update()和初始化函数init(),并通过设置interval参数来指定更新的时间间隔,通过设置blit参数为True来提高动画的性能。

最后,我们调用plt.show()方法展示动画。

通过以上的代码,我们可以实时看到折线图数据的变化。每20毫秒更新一次数据,生成新的折线图。这样就可以实时监测和展示数据的变化趋势了。

总结起来,利用matplotlib.animation.FuncAnimation()函数可以方便地创建实时更新的折线图,通过指定更新函数和初始化函数来更新和展示数据,不断生成新的折线图。通过设置合适的时间间隔,可以实现实时监测和展示数据的变化。这对于展示数据的趋势和实时监测来说是非常有用的。