我一直在尝试找出如何使用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)