0

我正在尝试使用以下代码每 10 秒更新一次绘图:

@sched.interval_schedule(seconds = 10)
def update_line():

    c = 0
    while c <= 9:
        y[c] = y[c] + 1
        c = c+1

    x = range(1, 11)
    plt.ion()
    fig = plt.figure(1)

    ax = fig.add_subplot(111)
    plt.plot(x, y)

它只是为第一组 y 数据绘制图形,之后显示错误:“WARNING:apscheduler.scheduler:Execution of job”update_line (trigger: interval[0:00:10], next run at: 2013 -02-06 16:00:42.942079)"已跳过:已达到最大运行实例数 (1)"

我应该以某种方式使用 draw() 吗?

谢谢

4

2 回答 2

0

首先,应该在更新绘图本身的函数/循环之外进行调用plt.ion()和图形创建,因为 i) 当交互性打开时,并且 ii) 您不希望每次都使用新图形。

看看这个问题和答案。我认为您想实现类似的目标

于 2013-02-06T16:21:49.780 回答
0

首先是您继续添加子图,而您宁愿将子图设置为当前轴。要将输出流设置为当前子图,请使用:

plt.figure(1)
plt.subplot(111)

当您只有一个子图 (111) 时,不需要后者。当您将子级添加到轴(子图)或更改它们时,图形不会自动重绘。添加一行

fig.canvas.draw()
于 2013-02-06T16:49:56.500 回答