Введение
В этом практическом занятии вы научитесь создавать анимацию с использованием Matplotlib. В частности, вы узнаете, как приостанавливать и возобновлять анимацию с использованием методов Animation.pause() и Animation.resume().
Советы по работе с ВМ
После завершения запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импорт библиотек
В этом шаге мы импортируем необходимые библиотеки для создания анимации с использованием Matplotlib.
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
Определение анимации
В этом шаге мы определим анимацию, которую хотим создать. Мы создадим анимацию, которая отображает нормальное распределение, которое движется вправо на каждом кадре.
class PauseAnimation:
def __init__(self):
## Создаем фигуру и ось
fig, ax = plt.subplots()
ax.set_title('Click to pause/resume the animation')
## Создаем значения оси x
x = np.linspace(-0.1, 0.1, 1000)
## Начинаем с нормального распределения
self.n0 = (1.0 / ((4 * np.pi * 2e-4 * 0.1) ** 0.5)
* np.exp(-x ** 2 / (4 * 2e-4 * 0.1)))
## Создаем график
self.p, = ax.plot(x, self.n0)
## Создаем анимацию
self.animation = animation.FuncAnimation(
fig, self.update, frames=200, interval=50, blit=True)
## Устанавливаем анимацию как непрерывную
self.paused = False
## Добавляем событие нажатия кнопки для переключения между паузой и работой
fig.canvas.mpl_connect('button_press_event', self.toggle_pause)
def toggle_pause(self, *args, **kwargs):
## Переключаемся между паузой и работой
if self.paused:
self.animation.resume()
else:
self.animation.pause()
self.paused = not self.paused
def update(self, i):
## Обновляем нормальное распределение
self.n0 += i / 100 % 5
self.p.set_ydata(self.n0 % 20)
return (self.p,)
Создание объекта анимации
В этом шаге мы создадим объект класса PauseAnimation, который мы определили на шаге 2.
pa = PauseAnimation()
Показать анимацию
В этом шаге мы покажем анимацию, которую создали на шаге 2.
plt.show()
Резюме
В этом практическом занятии вы узнали, как создавать анимацию с использованием Matplotlib, а также как приостанавливать и возобновлять анимацию с помощью методов Animation.pause() и Animation.resume(). Вы также узнали, как создавать интерактивную анимацию, которая реагирует на ввод пользователя. С этими знаниями вы можете создавать собственные пользовательские анимации и добавлять в них интерактивность.