Как построить график в реальном времени в цикле while с помощью matplotlib?

Я пытаюсь построить некоторые данные с камеры в режиме реального времени, используя 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 пунктов отдельно. Что на самом деле происходит, так это то, что окно всплывает с показом первой точки (хорошо с этим), затем ждет окончания цикла, прежде чем заполнить остальную часть графика.

Любые мысли, почему я не вижу точек, населенных по одному?