【python/matplotlib】动态更新数据

说在前面

  • python版本:3.7
  • matploylib版本:3.4.2
  • 环境:win10

场景

  • 实时更新数据,可重绘
  • 当前只测试了scatter,其它类型的暂未尝试

代码

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

np.random.seed(19680801)

fig, ax = plt.subplots()
x, y, s, c = [],[],[],[]
sc = ax.scatter(x,y,s,c=c)
plt.xlim(0,10)
plt.ylim(0,10)

def animate_append(i):
    x.append(np.random.rand(1)*10)
    y.append(np.random.rand(1)*10)
    s.append(np.random.rand(1)*100)
    c.append(np.random.rand(1))
    # set x and y
    sc.set_offsets(np.c_[x,y])
    # set size
    sc.set_sizes(np.array(s).ravel())
    # set color
    sc.set_array(np.array(c).ravel())

def animate(i):

    x.clear()
    y.clear()
    s.clear()
    c.clear()
    x.append(np.random.rand(1) * 10)
    y.append(np.random.rand(1) * 10)
    s.append(np.random.rand(1) * 100)
    c.append(np.random.rand(3,))
    # set x and y
    sc.set_offsets(np.c_[x, y])
    # set size
    sc.set_sizes(np.array(s).ravel())
    # set color
    sc.set_array(np.array(c).ravel())

ani = matplotlib.animation.FuncAnimation(fig, animate,
                frames=2, interval=1000, repeat=True)
plt.show()

结果(gif)

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值