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