如何在不使用Matplotlib FuncAnimation的情况下创建实时图

时间:2019-05-02 11:55:56

标签: python matplotlib

我一直在尝试找出如何使用Matplotlib而不是使用FuncAnimation()来实时更新图形的方法,因为这对于我的最终目的而言太慢了。我通读了This Article,它解释了如何在Matplotlib中加快绘图速度。然后,我尝试使用a real time graph方法来实现他的方法,但是不幸的是,我仍然只有基本的Python / Matplotlib技能才能做到这一点。

我能够创建一个x和y限制并创建一个空行,现在我想在while循环中使用随机数进行更新。 我能够在每个循环中创建随机数,但无法将数字更新到图形。我不希望x值更改,而希望y值在更新时更改。例如,看起来像心脏监护仪的东西。这是我遇到的以下代码:

import matplotlib.pyplot as plt
import random

x_len = 100
y_range = [-1,10]
xs = list(range(0,100))
ys = [0] * x_len

fig, ax = plt.subplots()
line, = ax.plot(xs,ys)
ax.set_ylim(y_range)
plt.show(block=False)
fig.canvas.draw()


while True:
    y = random.randint(-10,10)
    line.set_ydata(ys)
    ax.draw_artist(ax.patch)
    ax.draw_artist(line)
    fig.canvas.flush_events()

    print("one loop")
    print(y)

0 个答案:

没有答案