如何在 Matplotlib 中使用 FuncAnimation 绘制指数衰减函数


我们假设我们想以指数衰减的方式动态显示一个函数,如 y = a(b)^x,其中 b = 增长因子且 a = 初始值。

一个指数衰减函数看起来像这样:

不过,现在我们想动态显示并绘制指数衰减的正切函数。

首先导入库:

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

定义坐标轴:

fig, a = plt.subplots()

绘制带有坐标轴的空白图形:

xdata, ydata = [], []
line, = ax.plot(xdata, ydata)

设置网格线的限制:

ax.set_xlim(0, 10)
ax.set_ylim(-3.0, 3.0)
ax.grid()   

定义函数以生成数据,这些数据将代替帧数:

def frame_generator(i=0):
   while i < 50:
      i += 0.1
      yield x, np.tan(2*np.pi*x) * np.exp(-x/5.)

定义函数以绘制动画:

def animate(data):
   x, y = data
   xdata.append(x)
   ydata.append(y)
   xmin, xmax = ax.get_xlim()
   if x >= xmax:
      ax.set_xlim(xmin, 2*xmax)
      ax.figure.canvas.draw()
   line.set_data(xdata, ydata)
   return line

激活动画:

ani = FuncAnimation(fig, animate, frame_gen, blit=True, interval=2, repeat=False)

绘制图形:

plt.show()

输出

更新于: 23-2-2021

211 次浏览

启动你的 职业生涯

完成课程,获得认证

立即开始
广告