mplEasyAnimate package

Submodules

mplEasyAnimate.animate module

class mplEasyAnimate.animate.animation(filename: str, size: Tuple[int, int] = None, pbar: bool = False, mbs: int = 16, dpi: int = 150, init_frame: matplotlib.figure.Figure = None, init_ax: matplotlib.axes._subplots.AxesSubplot = None, fps: int = 5, interactive: bool = False, autoSmooth: bool = False, smoothingFrames: int = 5, saveFinalFrame: int = False, smoothingTime: float = None, smoothingFunction: Callable = None)

Bases: object

Animation class. This class requires will take in a matplotib figure object and add it to an imageio open video file.

Attributes:

filenamestr

Filename to animation will be written to

sizeTuple[int]

X, Y dimensions of image (x, y)

pbarbool

Flag controlling use of a tqdm progress bar

dpiint

image dpi (dots per inch)

Examples:

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> from animate import animation
>>> fig, ax = plt.subplots()
>>> x = np.linspace(0, 2*np.pi, 100)
>>> line, = ax.plot(x, np.sin(x))
>>> anim = animation('test.mp4', size=(500, 500), pbar=True)
>>> for i in range(100):
>>>     line.set_ydata(np.sin(x + i/10.0))
>>>     anim.add_frame(fig)
>>> anim.close()

Constructs all the necessary attributes for the animation object. If init_frame and init_ax are provided then the animation will be drawn on top of the init_frame. This can be used to speed up the animation process. If the matplotlib enviroment is interactive then that will be recorded and restored when the animation is closed.

Parameters:

filenamestr

Filename to write animation too

sizetuple[int], default=None

X, Y dimensions of image (x, y)

pbarbool, default=False

Use tqdm progress bar

mbsint, default=16

image macro_block_size to use

dpiint, default=150

image dpi

init_framematplotlib.figure.Figure, default=None

canvas to draw on, use to speed up animation

init_axmatplotlib.axes._subplots.AxesSubplot, default=None

axes to go with init_frame

fpsint, default=5

frames per second to draw animation at

ineractivebool, default=False

disable matplotlib interactive mode on animation start

autoSmoothbool, default=False

Smooth transitions between frames by adding intermediate frames

smoothingFramesint, default=5

Number of frames to add between each frame

saveFinalFramebool, default=False

Save the final frame of the animation to a png file called finalFrame.png

smoothingTimefloat, default=None

Time in seconds to smooth over. If this is provided then smoothingFrames will be ignored.

smoothingFunctionCallable, default=None

Function to use to smooth frames. This function should take two frames along with a frame index and the total number of frames to be smoothed over and return a new frame of the same size. If this is not provided and autoSmooth is turned on then a linear interpolation between the two frames will be used (cross fade). The function should return a numpy array of the same size as the input frames and as type np.uint8.

add_frame(frame: matplotlib.figure.Figure, facecolor: str = 'white')

User facing call to add a single frame.

Parameters:
  • frame (matplotlib.figure) – Matplotlib figure

  • facecolor (str, default='white') – Background color of animation

add_frames(frameList: list[matplotlib.figure.Figure], facecolor: str = 'white')

User facing call to add list of frames.

Parameters:
  • frameList (List[matplotlib.figure]) – List of matplotlib figures

  • facecolor (str, default='white') – Background color of animation

close()

Safe close of animation.

Module contents

mplEasyAnimate