Matplotlib从s接收数据时,逐行填充空白图像

2024-05-08 23:36:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有来自插座的数据。 我希望在开始时创建一个空映像,然后每次从套接字接收数据时更新此映像。 问题是当我接收到大量的数据(1024)并且我想显示它时,这需要时间和挂起。有没有可能加快一点速度? 我认为我做这件事的方式是有问题的,所以如果有人知道一个更好的方法,请建议。你知道吗

下面是我要做的:

    for i in range(0,99): 
        self.image_array[i] = np.zeros(shape=(y,x))  # y lines, x = points

    #values are the received array 
    self.image_array[ch_id][line] = self.values  from socket

    ax1.imshow(self.image_array[ch_id],cmap='gray',interpolation='nearest',
            origin='lower')

    plt.draw()
    plt.clf()

当我收到数据的时候,有没有可能不是替换数据,而是附加什么的? 有没有更好的方法来初始化数组而不是np.zeros(...


Tags: 数据方法imageselfidnp时间zeros
1条回答
网友
1楼 · 发布于 2024-05-08 23:36:10

每次新数据从套接字到达时,都不必创建新映像。您可以在初始化时创建一个映像,然后根据接收到的数据更新数组中的值:

  # on initialisation
  self.im = imshow(np.zeros((x,y)),cmap='gray',interpolation='nearest',
        origin='lower')
  ...

  # on update
  self.im.set_data(self.values)
  self.im.set_clim(self.values.min(),self.values.max())
  self.im.figure.canvas.draw()

相关问题 更多 >