Python. Анимированные графики в matplotlib

На уроке Python. Научная графика мы разобрали библиотеку научной графики matplotlib. Было рассказано, как установить библиотеку, дан обзор ее важным классам. В статье рассказано, как рисовать при помощи библиотеки matplotlib, строить графики функций, как делать на графиках метки. Библиотека matplotlib также позволяет рисовать трехмерные графики, топологические карты, сохранять графики в файлы в различных форматах, включая png и pdf. Так же matplotlib позволяет строить различные диаграммы, например, круговые. 

При помощи данной библиотеки Python можно так же делать и анимированные графики. Например:

Запустив данную программу, вы увидите синусоиду, по которой «бегает» красный кружочек.

Теперь разберем эту программу более подробно.

Вот этим кодом мы подключаем необходимые библиотеки:

Далее, вычисляем число «2 пи»:

Это все понятно и очевидно. А вот теперь начинается самое интересное:

Если после этой команды мы добавим

то получим на экране:

Figure(640×480)
AxesSubplot(0.125,0.11;0.775×0.77)

По сути, это информация о созданных объектах. То есть fig и ax — это объекты (фигура и оси). Но нам интересна именно fig — фигура, которая далее передаётся функции FuncAnimation:

Сюда же передается функция animate, которая, собственно говоря, и осуществляет анимацию. Что она делает? Она устанавливает новую координату красной точки:

До этого красная точка была нарисована командой:

Цвет и тип точки закодирован в строке ‘ro’ — красный кругляшек. Если поставим ‘go’ то кругляшек будет зеленый. Если вместо ‘o’ поставить знак ‘^’ то вместо кругляшка будет треугольник. Но можно задать маркер и цвет в более понятном виде:

А вот пример другой анимации, бегущая синусоида:

Здесь в функции animate мы просто пересчитываем синусоиду с некоторым сдвигом.

Анимацию можно записать, только для этого нужно поставить сначала специальную прогу, которая создает гифки, например, imagemagick (https://imagemagick.org/script/download.php) и после этого вы может создать файл с анимацией, просто вызвав:

А вот и сама анимашка:

 

 

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar