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

545868330001e54e02200220-100-100.jpg

桃花长相依

兄弟, 你的需求不是很明确, 我不确定能不能帮到你, 这是我之前在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的意思是帧之间的延迟(以毫秒为单位),默认为200repeat的意思是控制在帧序列完成时是否应重复动画, 默认为True具体可以参考matplotlib.animation的官方文档:https://matplotlib.org/api/_a...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值