matplotlib 动态刷新绘图(最简单的方法)

参考: 在matplotlib中动态更新图

更新二维绘图

在这里插入图片描述

以下代码实现动态绘制随机数据. 将代码中的 xdataydata 替换为你的数据即可.

import time
import matplotlib.pyplot as plt
import numpy as np
from numpy.random import rand

if __name__ == '__main__':
    # Enable interactive mode.
    plt.ion()
    # Create a figure and a set of subplots.
    figure, ax = plt.subplots()
    # return AxesImage object for using.
    lines, = ax.plot([], [])
    ax.set_autoscaley_on(True)
    # ax.set_xlim(min_x, max_x)
    ax.grid()
    for n in range(600):
        # A template of data generate...
        xdata = np.arange(128)
        ydata = rand(128)

        # update x, y data
        lines.set_xdata(xdata)
        lines.set_ydata(ydata)
        #Need both of these in order to rescale
        ax.relim()
        ax.autoscale_view()
        # draw and flush the figure .
        figure.canvas.draw()
        figure.canvas.flush_events()
        time.sleep(0.01) 

更新图像

在这里插入图片描述

以下代码实现动态绘制二维随机数据. 将代码中的 imdata 替换为你的二维数据即可.

import time
import matplotlib.pyplot as plt
import numpy as np
from numpy.random import rand


if __name__ == '__main__':
    imshape = (64,64,3)
    imdata = np.zeros(imshape)
    # Enable interactive mode.
    plt.ion()
    # Create a figure and a set of subplots.
    figure, ax = plt.subplots()
    # return AxesImage object for using.
    im = ax.imshow(imdata)
    for n in range(600):
        # A template of data generate...
        imdata = rand(*imshape)
        
        # update image data
        im.set_data(imdata)
        # draw and flush the figure .
        figure.canvas.draw()
        figure.canvas.flush_events()
        time.sleep(0.01) 

如果对你有帮助, 记得点个赞哦o( ̄▽ ̄)ブ

  • 40
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
matplotlib是一个功能强大的数据可视化库,也可以实现动态刷新的效果。在matplotlib中,可以通过不断地更新图形对象的属性来实现动态刷新。 首先,需要导入相关的库和模块,包括matplotlib库和animation模块: ```python import matplotlib.pyplot as plt from matplotlib import animation ``` 然后,创建一个用于动态刷新的函数,该函数每次被调用时会更新图形对象的属性。在函数中,可以通过修改图形对象的属性来实现动态更新的效果,例如更新线条的数据或者更新柱状图的高度。下面是一个示例函数,每次调用时会更新一个散点图的数据: ```python def update_scatter(frame): # 更新散点图的数据 ax.clear() ax.scatter(data[frame][:, 0], data[frame][:, 1]) ``` 接下来,创建一个图形窗口和坐标轴对象,并将其传递给动态刷新函数。可以使用`FuncAnimation`函数来创建一个动画对象,其中包括要刷新的图形对象和动态刷新的函数。下面是一个示例代码: ```python fig, ax = plt.subplots() ani = animation.FuncAnimation(fig, update_scatter, frames=len(data), interval=100) ``` 最后,调用`plt.show()`函数来显示动态刷新的图形。完整的代码如下: ```python import matplotlib.pyplot as plt from matplotlib import animation def update_scatter(frame): # 更新散点图的数据 ax.clear() ax.scatter(data[frame][:, 0], data[frame][:, 1]) fig, ax = plt.subplots() ani = animation.FuncAnimation(fig, update_scatter, frames=len(data), interval=100) plt.show() ``` 在上述代码中,`frames`参数用于指定要刷新的帧数,`interval`参数用于指定每次刷新之间的时间间隔(单位为毫秒)。 通过上述方法,我们可以利用matplotlib实现动态刷新的效果,使我们能够实时观察数据的变化和动态过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

falwat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值