1

我正在尝试创建一个 gui,它将在收集数据时不断更新 matplotlib 图。我希望该图保留过去的 5 个数据点,并在最近的数据点前面有一些空白区域。

这是我的脚本的一个极其简化的版本,它说明了我的问题所在:

import numpy as np
import pylab
import time

pylab.ion()

x1 = [0,1,2,3,4,5]
x2 = [5,6,7,8,9,10]

y1 = [5,6,7,8,7,8]
y2 =[8,7,6,5,4,3]

rate = 1
timer = 0
count = 0

while count <2:
    if timer == 0:
        pylab.plot(x1,y1)
        pylab.show()
        timer += rate
        count += 1
        time.sleep(1)
    else:
        pylab.plot(x2,y2)
        pylab.draw()
        timer += rate
        count += 1
        time.sleep(1)

我已经尝试过使用 show(block=False) 和其他一些东西。无论如何,在代码继续运行和我可以用来更新它的命令时,是否有强制数字保持打开状态?任何其他建议将不胜感激。

4

1 回答 1

0

以下序列对我有用..

  • ion() - 交互式
  • 节目()
  • 阴谋()

在此处更新图形,例如 - plot() - draw() - 而不是 show()

于 2014-12-06T22:31:57.993 回答