如何在 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()
输出
广告