我正在尝试使用 OpenCV 实时绘制来自相机的一些数据。但是,实时绘图(使用 matplotlib)似乎不起作用。
我已将问题隔离到这个简单的示例中:
fig = plt.figure()
plt.axis([0, 1000, 0, 1])
i = 0
x = 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 个点。实际发生的是,窗口弹出并显示第一个点(确定),然后等待循环完成,然后再填充图形的其余部分。
有什么想法为什么我一次看不到一个点?
原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是相关代码的工作版本(至少需要 2011-11-14 版本的 Matplotlib 1.1.0):
请注意对
plt.pause(0.05)
的调用,它既绘制新数据又运行 GUI 的事件循环(允许鼠标交互)。