Использование библиотеки Matplotlib. Как делать анимированные графики
Иногда нужно показать график в динамике, например, как меняется со временем какая-то величина. Если мы захотим воспользоваться функцией show(), то анимицию сделать не получится по той причине, что эта функция покажет окно с графиком и будет ждать, пока окно закроют.
Нам нужен способ периодически обновлять окно с графиком. Для этого используется так называемый интерактивный режим, который включается с помощью функции ion() пакета pylab, а выключается функцией ioff().
Кроме того, вместо функции show() мы должны использовать функцию draw(), которая отображает график и не задерживает выполнение программы.
Следующий пример демонстрирует просто движущуюся синусоиду. Для простоты окно закрывается после показа 50 кадров.

# -*- coding: UTF-8 -*-
import math
# Импортируем один из пакетов Matplotlib
import pylab
# Импортируем пакет со вспомогательными функциями
from matplotlib import mlab
# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0
# Шаг между точками
dx = 0.01
# Создадим список координат по оиси X на отрезке [-xmin; xmax], включая концы
xlist = mlab.frange (xmin, xmax, dx)
# !!! Включаем интерактивный режим
pylab.ion()
# У нас будет 50 кадров
for n in range (50):
# Данные для очередного кадра
ylist = [math.sin (x + n / 2.0) for x in xlist]
# !!! Очистим график
pylab.clf()
# Выведем новые данные
pylab.plot (xlist, ylist)
# !!! Нарисуем их
# !!! Обратите внимание, что здесь используется функция draw(), а не show()
pylab.draw()
# !!! Закроем окно, иначе при завершении программы получим ошибку
pylab.close()
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.