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