如何使用matplotlib在时间循环中实时绘制?

如何使用matplotlib在时间循环中实时绘制?

我试图用OpenCV实时地从相机中绘制一些数据。然而,实时绘图(使用matplotlib)似乎不起作用。

我已经将这个问题隔离到了这个简单的例子中:

fig = plt.figure()plt.axis([0, 1000, 0, 1])i = 0x = list()y = list()while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()

我希望这个例子能分别画出1000个点。实际发生的情况是,窗口会弹出第一个显示的点(可以),然后等待循环完成,然后再填充图形的其余部分。

有什么想法,为什么我没有看到点一次一个人?


ITMISS
浏览 1091回答 3
3回答

哔哔one

show可能不是最好的选择。我要做的就是用pyplot.draw()相反。您还可能希望包括一个小时间延迟(例如,time.sleep(0.05))在循环中,这样您就可以看到情节的发生。如果我对你的例子做了这些修改,它对我是有效的,我看到每个点一次出现一个。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python
MongoDB