У меня проблемы с обновлением простого графика xy с использованием значений y, обновляемых во время цикла

Мне дали некоторый код, который должен имитировать анимацию y-массива, обновляемого с течением времени, на одной фигуре графика. Я хочу показать график в моем окне терминала (используя Spyder 3.3.6 / Anaconda 1.9.7 на MAC 10.13.14), который обновляет значения y после каждого интервала цикла for. . Мне дали код от инструктора, который должен делать построение - на его видео это выглядит как анимация - с использованием вызовов различных подпрограмм топора - но в моих руках все, что я получаю, это один сюжет с начальным массивом time = 0 ценности.

Я исследовал множество сообщений в блогах для подобных ситуаций и изучил руководство по matplotlib; Я пробовал поиграть с различными командами, их размещением и аргументами. Лучшее, что я сделал, - это построить все y-массивы друг над другом на одном графике (закомментировав команды ax.clear () и plt.show (block = false). Я могу легко сгенерировать новые графики для каждый массив Y. Но я в лесу в лесу, что происходит с моим кодом.

Я отправляю полный код, чтобы вы могли запустить его и увидеть результаты. Оцените любой свет, который вы можете пролить на это. Спасибо.

import matplotlib.pyplot as plt
import numpy as np

y = numpy.zeros(10)
#set up plot
fig, ax=plt.subplots()
ax.plot(y)
ax.set_ylim([0,1])
plt.show(block=False)
#instructor note: "the block=False flag tells Python to throw the plot on the screen then keep moving".

for i in range(5):
    y = np.random.random([10,1])
    ax.clear()
    ax.plot(y)
    ax.set_ylim([0,1])
    plt.show(block=False)
    fig.canvas.draw()
#Instructor note: "These commands will update the plot to show the latest y values, and then keeps moving". 

ax.clear()
ax.plot(y)
ax.set_ylim([0,1])
plt.show
fig.canvas.draw()

person JohnE    schedule 28.01.2020    source источник
comment
Замените fig.canvas.draw() на plt.pause(0.2). В общем, смотрите документацию matplotlib о том, как создавать анимацию, а не видео с инструктором.   -  person ImportanceOfBeingErnest    schedule 28.01.2020
comment
Внес изменения; те же результаты.   -  person JohnE    schedule 28.01.2020
comment
Он должен работать с этими изменениями. Если это не так, вы можете предоставить дополнительную информацию о том, где и как вы запускаете свой код, используемые версии и т. Д. И т. Д.   -  person ImportanceOfBeingErnest    schedule 28.01.2020
comment
Помимо numpy.zeros и plt.show без скобок, пример работает, если вы запускаете как скрипт py. Чтобы заставить его работать на conda, я думаю, вам может потребоваться взглянуть на это: stackoverflow.com/questions/39658717/   -  person Fabrizio    schedule 29.01.2020