matplotlib.animation.Animation
- классmatplotlib.animation.Animation(fig, event_source=None, blit=False)[source]
-
Базовый класс для анимаций.
Этот класс не пригоден для непосредственного использования и должен быть расширен для обеспечения необходимого поведения.
Примечание
Вы должны сохранить созданную анимацию в переменной, которая существует до тех пор, пока анимация должна выполняться. В противном случае объект Animation будет удалён сборщиком мусора, и анимация остановится.
- Параметры:
-
-
fig
Figure -
Объект Figure, используемый для получения необходимых событий, таких как отрисовка или изменение размера.
- event_sourceобъект, необязательно
-
Класс, который может запускать обратный вызов при возникновении желаемых событий, а также останавливать и запускать себя.
Примеры включают таймеры (см.
TimedAnimation) и уведомления системы файлов. - blitbool, по умолчанию: False
-
Используется ли кеширование (blitting) для оптимизации отрисовки.
-
fig
См. также
- __init__(fig, event_source=None, blit=False)[source]
Методы
__init__(fig[, event_source, blit])Возвращает новую последовательность информации о кадрах.
Возвращает новую последовательность сохранённой/кешированной информации о кадрах.
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]
-
Возвращает новую последовательность сохранённой/кешированной информации о кадрах.
- pause()[source]
-
Приостановить анимацию.
- resume()[source]
-
Возобновить анимацию.
- save(filename, writer=None, fps=None, dpi=None, codec=None, bitrate=None, extra_args=None, metadata=None, extra_anim=None, savefig_kwargs=None, *, progress_callback=None)[source]
-
Сохранить анимацию как файл видео, нарисовав каждый кадр.
- Параметры:
-
- filenamestr
-
Имя выходного файла, например,
mymovie.mp4. -
writer
MovieWriterили str, по умолчанию:rcParams["animation.writer"](по умолчанию:'ffmpeg') -
Экземпляр класса
MovieWriterили ключевое слово, идентифицирующее используемый класс, например, 'ffmpeg'. - fpsint, необязательно
-
Частота кадров видео (в секунду). Если не задано, используется частота кадров из интервала кадров анимации.
-
dpifloat, по умолчанию:
rcParams["savefig.dpi"](по умолчанию:'figure') -
Определяет количество точек на дюйм для кадров видео. Вместе с размерами фигуры в дюймах это определяет размер видео.
-
codecstr, по умолчанию:
rcParams["animation.codec"](по умолчанию:'h264'). -
Кодек видео. Не все кодеки поддерживаются данным
MovieWriter. -
bitrateint, по умолчанию:
rcParams["animation.bitrate"](по умолчанию:-1) -
Битрейт видео в килобитах в секунду. Более высокие значения означают более высокое качество видео, но увеличивают размер файла. Значение -1 позволяет базовому кодеку видеовывода выбрать битрейт.
- extra_argsсписок строк или None, необязательно
-
Дополнительные аргументы командной строки, передаваемые в базовый кодек видеовывода. Значение по умолчанию, None, означает использование
rcParams["animation.[name-of-encoder]_args"]для встроенных записывателей. - metadatadict[str, str], по умолчанию: {}
-
Словарь с ключами и значениями для метаданных, которые нужно включить в выходной файл. Некоторые полезные ключи: title, artist, genre, subject, copyright, srcform, comment.
- extra_animсписок, по умолчанию: []
-
Дополнительные объекты
Animation, которые необходимо включить в сохранённый файл видео. Они должны быть из того же экземпляраmatplotlib.figure.Figure. Кроме того, кадры анимации просто объединяются, поэтому между кадрами разных анимаций должна быть 1:1 корреспонденция. - savefig_kwargsdict, по умолчанию: {}
-
Ключевые аргументы, передаваемые каждому вызову
savefigдля сохранения отдельных кадров. - progress_callbackфункция, необязательно
-
Функция обратного вызова, которая будет вызываться для каждого кадра, чтобы сообщить о прогрессе сохранения. Она должна иметь сигнатуру
def func(current_frame: int, total_frames: int) -> Any
где current_frame — номер текущего кадра, а total_frames — общее количество кадров, которые нужно сохранить. total_frames устанавливается в None, если общее количество кадров определить нельзя. Возвращаемые значения могут существовать, но игнорируются.
Пример кода для записи прогресса в стандартный вывод:
progress_callback = lambda i, n: print(f'Saving frame {i} of {n}')
Примечания
fps, codec, bitrate, extra_args и metadata используются для создания экземпляра
MovieWriterи могут передаваться только если writer является строкой. Если они переданы как не-None и writer — этоMovieWriter, будет поднята ошибкаRuntimeError.
- to_html5_video(embed_limit=None)[source]
-
Преобразовать анимацию в тег HTML5
<video>.Это сохраняет анимацию как видео h264, закодированное в base64 непосредственно в тег HTML5 видео. Это учитывает
rcParams["animation.writer"](по умолчанию:'ffmpeg') иrcParams["animation.bitrate"](по умолчанию:-1). Это также используетintervalдля управления скоростью и параметрrepeatдля решения вопроса о цикличности.- Параметры:
-
- embed_limitfloat, необязательно
-
Предел в МБ возвращаемой анимации. Анимация не создаётся, если предел превышен. По умолчанию
rcParams["animation.embed_limit"](по умолчанию:20.0) = 20.0.
- Возвращает:
-
- str
-
Тег HTML5 видео с встроенным видео h264, закодированным в base64. Если предел embed_limit превышен, возвращается строка «Видео слишком велико для вставки».
- to_jshtml(fps=None, embed_frames=True, default_mode=None)[source]
-
Создать HTML-представление анимации.
- Параметры:
-
- fpsint, необязательно
-
Частота кадров видео (в секунду). Если не задано, используется частота кадров из интервала кадров анимации.
- embed_framesbool, необязательно
- default_modestr, необязательно
-
Действие при завершении анимации. Должно быть одним из
{'loop', 'once', 'reflect'}. По умолчанию'loop'еслиself.repeatравно True, в противном случае'once'.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.6.0/api/_as_gen/matplotlib.animation.Animation.html