matplotlib.animation.FuncAnimation
- classmatplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)[исходный код]
-
Подкласс
TimedAnimation, создающий анимацию путём многократного вызова функции func.Примечание
Созданный объект Animation необходимо сохранить в переменной, которая будет существовать всё время работы анимации. В противном случае объект Animation будет удалён сборщиком мусора, и анимация остановится.
- Параметры:
-
-
fig
Figure -
Объект figure, используемый для получения необходимых событий, например отрисовки или изменения размера.
- funcвызываемый объект
-
Функция, вызываемая для каждого кадра. Первым аргументом будет следующее значение из frames. Дополнительные позиционные аргументы можно передать с помощью
functools.partialили параметра fargs.Требуемая сигнатура:
def func(frame, *fargs) -> iterable_of_artists
Часто удобнее передавать аргументы с помощью
functools.partial. Таким образом можно также передавать именованные аргументы. Чтобы передать функцию с позиционными и именованными аргументами, задайте все аргументы как именованные, оставив аргумент frame незаданным:def func(frame, art, *, y=None): ... ani = FuncAnimation(fig, partial(func, art=ln, y='foo'))Если
blit == True, func должна возвращать итерируемый объект со всеми изменёнными или созданными объектами artist. Эта информация используется алгоритмом блиттинга для определения частей figure, которые нужно обновить. Еслиblit == False, возвращаемое значение не используется, и его можно не указывать. - framesитерируемый объект, int, функция-генератор или None, необязательный
-
Источник данных, передаваемых в func для каждого кадра анимации
- Если задан итерируемый объект, используются предоставленные им значения. Если у него есть длина, она переопределяет именованный аргумент save_count.
- Если задано целое число, это эквивалентно передаче
range(frames) -
Если задана функция-генератор, она должна иметь сигнатуру:
def gen_function() -> obj
- Если задано None, это эквивалентно передаче
itertools.count.
Во всех этих случаях значения из frames просто передаются в предоставленную пользователем функцию func и потому могут иметь любой тип.
- init_funcвызываемый объект, необязательный
-
Функция для отрисовки пустого кадра. Если она не задана, будут использованы результаты отрисовки первого элемента последовательности кадров. Эта функция вызывается один раз перед первым кадром.
Требуемая сигнатура:
def init_func() -> iterable_of_artists
Если
blit == True, init_func должна возвращать итерируемый объект с объектами artist для повторной отрисовки. Эта информация используется алгоритмом блиттинга для определения частей figure, которые нужно обновить. Еслиblit == False, возвращаемое значение не используется, и его можно не указывать. - fargsкортеж или None, необязательный
-
Дополнительные аргументы, передаваемые при каждом вызове func. Примечание: вместо fargs предпочтительно использовать
functools.partial. Подробности см. в описании func. - save_countint, необязательный
-
Резервное значение количества значений из frames, которые нужно кэшировать. Используется только в том случае, если количество кадров нельзя определить по frames, например, когда задан итератор без длины или генератор.
- intervalint, по умолчанию: 200
-
Задержка между кадрами в миллисекундах.
- repeat_delayint, по умолчанию: 0
-
Задержка в миллисекундах между последовательными запусками анимации, если repeat имеет значение True.
- repeatbool, по умолчанию: True
-
Повторять ли анимацию после завершения последовательности кадров.
- blitbool, по умолчанию: False
-
Используется ли блиттинг для оптимизации отрисовки. Примечание: при использовании блиттинга все анимированные объекты artist отрисовываются в соответствии с их zorder, однако они будут отображаться поверх всех предыдущих объектов artist независимо от их zorder.
- cache_frame_databool, по умолчанию: True
-
Кэшируются ли данные кадров. Отключение кэширования может быть полезно, если кадры содержат большие объекты.
-
fig
- __init__(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)[исходный код]
Методы
__init__(fig, func[, frames, init_func, ...])Возвращает новую последовательность данных о кадрах.
Возвращает новую последовательность сохранённых/кэшированных данных о кадрах.
pause()Приостанавливает анимацию.
resume()Возобновляет анимацию.
save(filename[, writer, fps, dpi, codec, ...])Сохраняет анимацию в видеофайл, отрисовывая каждый кадр.
to_html5_video([embed_limit])Преобразует анимацию в тег
<video>HTML5.to_jshtml([fps, embed_frames, default_mode])Создаёт HTML-представление анимации.
- new_frame_seq()[исходный код]
-
Возвращает новую последовательность данных о кадрах.
- new_saved_frame_seq()[исходный код]
-
Возвращает новую последовательность сохранённых/кэшированных данных о кадрах.
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.animation.FuncAnimation.html