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.Примечание
Вы должны сохранить созданный объект анимации в переменной, которая существует так же долго, как и должна работать анимация. В противном случае объект анимации будет удалён сборщиком мусора, и анимация остановится.
- Параметры:
-
-
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и может быть опущено в этом случае. - framesитерируемый объект, целое число, функция-генератор или None, необязательно
-
Источник данных для передачи в func для каждого кадра анимации
- Если это итерируемый объект, просто используйте предоставленные значения. Если итерируемый объект имеет длину, он переопределит аргумент 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и может быть опущено в этом случае. - fargsкортеж или None, необязательно
-
Дополнительные аргументы для передачи в каждую вызов func. Обратите внимание: использование
functools.partialпредпочтительнее fargs. Смотрите func для подробностей. - save_countцелое число, необязательно
-
Значение по умолчанию для количества значений из frames для кэширования. Используется только если количество кадров нельзя определить из frames, т. е. когда это итератор без длины или генератор.
- intervalцелое число, по умолчанию: 200
-
Задержка между кадрами в миллисекундах.
- repeat_delayцелое число, по умолчанию: 0
-
Задержка в миллисекундах между последовательными запусками анимации, если repeat равно True.
- repeatbool, по умолчанию: True
-
Определяет, повторяется ли анимация, когда последовательность кадров завершена.
- blitbool, по умолчанию: False
-
Определяет, используется ли быстрое отрисовка для оптимизации. При использовании быстрого отрисовки любые анимированные элементы управления будут отрисовываться в соответствии с их порядком отрисовки; однако они будут нарисованы поверх любых предыдущих элементов управления, независимо от их порядка отрисовки.
- 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-представление анимации.
Атрибуты
repeat[Устаревшее]
[Устаревшее]
- new_frame_seq()[source]
-
Возвращает новую последовательность информации о кадре.
- new_saved_frame_seq()[source]
-
Возвращает новую последовательность сохранённой/кэшированной информации о кадре.
- propertysave_count[source]
-
[Устаревшее]
Примечания
Устарело начиная с версии 3.7:
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.7.5/api/_as_gen/matplotlib.animation.FuncAnimation.html