我正在try 使用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个点.实际发生的情况是,窗口弹出并显示第一个点(可以),然后等待循环完成,然后填充图形的其余部分.

有没有想过为什么我一次看不到一个点?

推荐答案

以下是有问题的代码的工作版本(需要2011-11-14的Matplotlib 1.1.0或更高版本):

import numpy as np
import matplotlib.pyplot as plt

plt.axis([0, 10, 0, 1])

for i in range(10):
    y = np.random.random()
    plt.scatter(i, y)
    plt.pause(0.05)

plt.show()

注意对plt.pause(0.05)的调用,它既绘制新数据又运行GUI的事件循环(允许鼠标交互).

Python相关问答推荐

用ctype构建指针链

有没有办法清除气流中的僵尸

零填充2D数组上的Numpy切片

取相框中一列的第二位数字

调试回归无法解决我的问题

KNN分类器中的GridSearchCV

模型序列化器中未调用现场验证器

由于瓶颈,Python代码执行太慢-寻求性能优化

根据网格和相机参数渲染深度

大Pandas 胚胎中产生组合

如何根据参数推断对象的返回类型?

Python 约束无法解决n皇后之谜

如何使用html从excel中提取条件格式规则列表?

从numpy数组和参数创建收件箱

pandas滚动和窗口中有效观察的最大数量

如何获取numpy数组的特定索引值?

如何使用pytest来查看Python中是否存在class attribution属性?

如何让这个星型模式在Python中只使用一个for循环?

如何在Python中使用Pandas将R s Tukey s HSD表转换为相关矩阵''

交替字符串位置的正则表达式