forked from gil9red/SimplePyScripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexm22.py
More file actions
57 lines (41 loc) · 2.73 KB
/
Copy pathexm22.py
File metadata and controls
57 lines (41 loc) · 2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
__author__ = 'ipetrash'
## Использование библиотеки Matplotlib. Как делать анимированные графики
# Иногда нужно показать график в динамике, например, как меняется со временем какая-то
# величина. Если мы захотим воспользоваться функцией show(), то анимицию сделать не
# получится по той причине, что эта функция покажет окно с графиком и будет ждать,
# пока окно закроют.
# Нам нужен способ периодически обновлять окно с графиком. Для этого используется
# так называемый интерактивный режим, который включается с помощью функции ion()
# пакета pylab, а выключается функцией ioff().
# Кроме того, вместо функции show() мы должны использовать функцию draw(), которая
# отображает график и не задерживает выполнение программы.
# Следующий пример демонстрирует просто движущуюся синусоиду. Для простоты окно
# закрывается после показа 50 кадров.
import math
# Импортируем один из пакетов Matplotlib
import pylab
# Импортируем пакет со вспомогательными функциями
from matplotlib import mlab
if __name__ == '__main__':
# Интервал изменения переменной по оси 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()