-- coding: utf-8 --
from future import unicode_literals
import numpy as np #导入模块
import matplotlib.pyplot as mp
import matplotlib.animation as ma
mp.figure(“Signal”)#创建窗口对象
mp.xlabel(‘Time’)#设置x轴标签
mp.ylabel(‘Signal’)#y轴标签
ax = mp.gca()#获取当前坐标图对象
ax.set_ylim(-3, 3)#设置y轴坐标范围
ax.set_xlim(0, 10)#设置x轴坐标范围
mp.tick_params(labelsize=10)#设置坐标参数(字体大小)
mp.grid(linestyle=’:’)#设置网格线(虚线)
pl = mp.plot([], [], color=’orangered’)[0]#获取当前轴对象
pl.set_data([], [])
设置回调函数
def update(data):
t, v = data
x, y = pl.get_data()
x.append(t)
y.append(v)
x_min, x_max = ax.get_xlim()
if t >= x_max:
ax.set_xlim(t - (x_max - x_min), t)
ax.figure.canvas.draw()
pl.set_data(x, y)
设置生成器函数
def generator():
t = 0
while True:
v = np.sin(2 * np.pi * t) * np.exp(np.sin(0.2 * np.pi * t))
yield t, v
t += 0.05
anim = ma.FuncAnimation(mp.gcf(), update, generator, interval=5)#interval回调周期
mp.show()