动态折线图

MatplotlibMatplotlibBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本教程将指导你使用 Python Matplotlib 库创建一个动画折线图的过程。该折线图将显示一个随时间变化幅度的正弦波。

虚拟机提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入库

第一步是导入必要的库。我们将使用 Matplotlib 来创建图表,使用 NumPy 来生成数据。

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

初始化图形和坐标轴

接下来,我们需要为图表初始化图形和坐标轴。这可以使用 Matplotlib 的 subplots() 函数来完成。

fig, ax = plt.subplots()

生成数据

在这一步中,我们将生成折线图的数据。我们将使用 NumPy 的 arange() 函数生成 x 轴的值数组,并使用 sin() 函数生成正弦波的 y 轴值数组。

x = np.arange(0, 2*np.pi, 0.01)
line, = ax.plot(x, np.sin(x))

定义动画函数

动画函数将由 FuncAnimation() 函数调用,并用于使用新数据更新图表。在这个例子中,我们将使用一个随时间变化幅度的正弦波来更新折线图的 y 轴值。

def animate(i):
    line.set_ydata(np.sin(x + i / 50))  ## 更新数据。
    return line,

创建动画对象

现在我们可以使用 FuncAnimation() 函数创建动画对象。我们将传入图形对象、动画函数、更新间隔以及要保存的帧数。

ani = animation.FuncAnimation(
    fig, animate, interval=20, blit=True, save_count=50)

显示图表

最后,我们可以使用 Matplotlib 的 show() 函数来显示图表。

plt.show()

总结

在本教程中,我们学习了如何使用 Python 的 Matplotlib 库创建一个动画折线图。我们初始化了图形和坐标轴,生成了数据,定义了动画函数,并创建了动画对象。然后我们使用 show() 函数显示了图表。