Есть ли способ построить что-то итеративно, чтобы новый график перезаписывал предыдущий? - PullRequest
1 голос
/ 12 ноября 2019

Что я хочу сделать, это динамически изменить график, чтобы я мог видеть его обновление по мере того, как Python выполняет свой код. Вот что я придумал:

import matplotlib.pyplot as plt
import time

def plotResult(x,y):
    plt.plot(x,y)

plt.figure()

for i in range(5):
    x = [2,3,5*i]
    y = [1,2,3]
    plotResult(x,y)
    time.sleep(1)

Я хочу, чтобы при каждом вызове plotResult стирался предыдущий график с новым графиком на его месте. Вместо этого я получаю каждый сюжет поверх друг друга. Я использую time.sleep здесь, потому что я хочу некоторое время посмотреть на недавно построенный результат, прежде чем он будет удален и заменен новым графиком. Я предполагаю, что я по сути пытаюсь создать анимацию здесь, где каждый кадр является вызовом plotResult.

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

1 Ответ

0 голосов
/ 12 ноября 2019

Читайте о FuncAnimation классе . Он постоянно вызывает функцию для обновления каждого кадра анимации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...