Мне дали некоторый код, который должен имитировать анимацию 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()
fig.canvas.draw()
наplt.pause(0.2)
. В общем, смотрите документацию matplotlib о том, как создавать анимацию, а не видео с инструктором. - person ImportanceOfBeingErnest   schedule 28.01.2020