Введение
В этом лабораторном занятии мы научимся создавать анимированное изображение с использованием предварительно вычисленных списков изображений. Для создания анимации мы будем использовать библиотеку Matplotlib в Python. Цель этого лабораторного занятия - показать процесс создания анимированного изображения и дать базовое понимание того, как это работает.
Советы по работе с ВМ
После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике с Jupyter Notebook.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импорт библиотек
Для начала нам нужно импортировать библиотеки, которые мы будем использовать. Мы будем использовать библиотеку Matplotlib для создания анимации и библиотеку Numpy для генерации данных для анимации.
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
Создайте объекты Figure и Axes
Далее нам нужно создать объекты Figure и Axes, которые мы будем использовать для создания анимации. Мы будем использовать метод subplots для создания этих объектов.
fig, ax = plt.subplots()
Определите функцию
Теперь нам нужно определить функцию, которую мы будем использовать для генерации данных для анимации. В этом примере мы будем использовать функции синус и косинус для генерации данных.
def f(x, y):
return np.sin(x) + np.cos(y)
Генерируем данные
Мы будем использовать метод linspace из библиотеки Numpy для генерации данных для анимации. Мы будем генерировать два набора данных: x и y, а затем преобразовывать данные y, чтобы создать двухмерный массив.
x = np.linspace(0, 2 * np.pi, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)
Создаем кадры для анимации
Теперь мы создадим кадры для анимации. Мы будем использовать цикл for для генерации 60 кадров. В каждой итерации цикла мы будем обновлять данные x и y, а затем создавать новый объект изображения с использованием метода imshow. Затем мы добавим объект изображения в список ims.
ims = []
for i in range(60):
x += np.pi / 15
y += np.pi / 30
im = ax.imshow(f(x, y), animated=True)
if i == 0:
ax.imshow(f(x, y)) ## show an initial one first
ims.append([im])
Создаем анимацию
Теперь мы создадим анимацию с использованием метода ArtistAnimation. Мы передадим в него объект figure, список ims, интервал между кадрами и задержку повторения.
ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True, repeat_delay=1000)
Показываем анимацию
Наконец, мы будем использовать метод show для отображения анимации.
plt.show()
Резюме
В этом практическом занятии мы узнали, как создавать анимированное изображение с использованием предварительно вычисленных списков изображений. Мы использовали библиотеку Matplotlib в Python для создания анимации и библиотеку Numpy для генерации данных для анимации. Мы создали объекты figure и axes, определили функцию, сгенерировали данные, создали кадры для анимации и создали саму анимацию. Затем мы отобразили анимацию с использованием метода show. Это практическое занятие дало базовое понимание того, как создавать анимированное изображение, и продемонстрировало процесс этого.