【问题标题】:How to continuously update pyplot figure如何不断更新pyplot图
【发布时间】:2013-06-21 18:39:35
【问题描述】:

我正在尝试创建一个 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) 和其他一些东西。无论如何,在代码继续运行和我可以用来更新它的命令时,是否有强制数字保持打开状态?任何其他建议将不胜感激。

【问题讨论】:

  • 使用 plt.pause 而不是 time.sleep 确保 gui 正确更新。

标签: python python-2.7 matplotlib graphing


【解决方案1】:

以下顺序对我有用..

  • ion() - 开启互动
  • 显示()
  • 情节()

在此处更新图表,例如 - 阴谋() - draw() - 而不是 show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2023-03-19
    • 2012-01-20
    相关资源
    最近更新 更多