subprocess.Popen ломает терминал при выходе

Верхний (и многие другие) ответы были построены на plt.pause(), но это был старый способ анимации сюжета в matplotlib.

TL; DR: вы можете захотеть использовать matplotlib.animation (, как указано в документации ).

После того, как вы разыграли различные ответы и фрагменты кода, на самом деле это был плавный способ бесконечного рисования входящих данных.

Вот мой код для быстрого запуска. Он отображает текущее время со случайным числом в [0, 100) каждые 200 мс бесконечно, одновременно обрабатывая автоматическое масштабирование вида:

from datetime import datetime
from matplotlib import pyplot
from matplotlib.animation import FuncAnimation
from random import randrange

x_data, y_data = [], []

figure = pyplot.figure()
line, = pyplot.plot_date(x_data, y_data, '-')

def update(frame):
    x_data.append(datetime.now())
    y_data.append(randrange(0, 100))
    line.set_data(x_data, y_data)
    figure.gca().relim()
    figure.gca().autoscale_view()
    return line,

animation = FuncAnimation(figure, update, interval=200)

pyplot.show()

Вы также можете исследовать blit для еще большей производительности , как в документации FuncAnimation .

1
задан posop 23 March 2019 в 06:01
поделиться