Python使用了numpy
和matplotlib
库来创建一个动画,展示了正弦波的变化。
-
导入必要的库:
numpy
用于数值计算。pyplot
从matplotlib
库中用于绘图。FuncAnimation
用于创建动画。
-
设置绘图风格为
seaborn-pastel
,这是一种颜色风格。 -
创建一个
figure
对象和axes
对象,设置x轴和y轴的显示范围。 -
绘制一条线(
line
),初始时没有数据。 -
定义
init
函数,用于初始化动画。它设置线条的数据为空,并返回线条对象。 -
定义
animate
函数,用于更新动画的每一帧。它计算正弦波的数据,并更新线条的数据。 -
创建一个
FuncAnimation
对象,指定图形、动画函数、初始化函数、帧数、更新间隔和是否只更新变化的部分(blit=True
)。 -
最后,使用
anim.save
方法将动画保存为GIF文件,使用imagemagick
作为写入器。
代码如下:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.animation import FuncAnimation
plt.style.use('seaborn-pastel')
fig = plt.figure()
ax = plt.axes(xlim=(0, 4), ylim=(-2, 2))
line, = ax.plot([], [], lw=3)
def init():
line.set_data([], [])
return line,
def animate(i):
x = np.linspace(0, 4, 1000)
y = np.sin(2 * np.pi * (x - 0.01 * i))
line.set_data(x, y)
return line,
anim = FuncAnimation(fig, animate, init_func=init,
frames=200, interval=20, blit=True)
anim.save('sine_wave.gif', writer='imagemagick')
结果如下: