如何用python画数据图-python怎么对动态数据在同一张图上画出来

兄弟, 你的需求不是很明确, 我不确定能不能帮到你,

这是我之前在matplotlib官网看到的Demo:import numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationdef data_gen(t=0):

cnt = 0

while cnt < 1000:

cnt += 1

t += 0.1

yield t, np.sin(2*np.pi*t) * np.exp(-t/10.)def init():

ax.set_ylim(-1.1, 1.1)

ax.set_xlim(0, 10) del xdata[:] del ydata[:]

line.set_data(xdata, ydata) return line,

fig, ax = plt.subplots()

line, = ax.plot([], [], lw=2)

ax.grid()

xdata, ydata = [], []def run(data):

# update the data

t, y = data

xdata.append(t)

ydata.append(y)

xmin, xmax = ax.get_xlim() if t >= xmax:

ax.set_xlim(xmin, 2*xmax)

ax.figure.canvas.draw()

line.set_data(xdata, ydata) return line,

ani = animation.FuncAnimation(fig, run, data_gen, blit=False, interval=10,

repeat=False, init_func=init)

plt.show()

data_gen()这个函数, 用来生成具有数据的数据源, 改代码的话, 可以在此处改为你的数据源, 在此代码中该函数最终返回了一个生成器, 不一定非要用生成器, iterable(list, tuple等可迭代对象)、int或者None都行

代码中用了yield关键字, 具体参考:这位大佬的文章

init()这个函数, 是用于绘制清晰帧的函数, 用于初始化

run()这个函数, 是绘制每一帧所调用的函数

animation.FuncAnimation类的参数是:class matplotlib.animation.FuncAnimation(fig,func,frames = None,init_func = None,fargs = None,save_count = None,** kwargs )

interval的意思是帧之间的延迟(以毫秒为单位),默认为200

repeat的意思是控制在帧序列完成时是否应重复动画, 默认为True

具体可以参考matplotlib.animation的官方文档:https://matplotlib.org/api/_a...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值