Como faço para plotar em tempo real em um loop while usando o matplotlib?

Eu estou tentando plotar alguns dados de uma câmera em tempo real usando o OpenCV. No entanto, a plotagem em tempo real (usando o matplotlib) não parece estar funcionando.

Eu isolei o problema neste exemplo simples:

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()

Espero que este exemplo plote 1000 pontos individualmente. O que realmente acontece é que a janela aparece com o primeiro ponto aparecendo (ok com isso), então espera que o loop termine antes de preencher o resto do gráfico.

Alguma idéia de por que não estou vendo pontos preenchidos um de cada vez?

questionAnswers(10)

yourAnswerToTheQuestion