matplotlib:移动的正弦波

Python使用了numpymatplotlib库来创建一个动画,展示了正弦波的变化。

  1. 导入必要的库:

    • numpy用于数值计算。
    • pyplotmatplotlib库中用于绘图。
    • FuncAnimation用于创建动画。
  2. 设置绘图风格为seaborn-pastel,这是一种颜色风格。

  3. 创建一个figure对象和axes对象,设置x轴和y轴的显示范围。

  4. 绘制一条线(line),初始时没有数据。

  5. 定义init函数,用于初始化动画。它设置线条的数据为空,并返回线条对象。

  6. 定义animate函数,用于更新动画的每一帧。它计算正弦波的数据,并更新线条的数据。

  7. 创建一个FuncAnimation对象,指定图形、动画函数、初始化函数、帧数、更新间隔和是否只更新变化的部分(blit=True)。

  8. 最后,使用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')

结果如下: 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值