Camera Class to make snapshots of a figure and save a gif from stored images
Project description
mplcamera
This package is adapted from https://github.com/jwkvam/celluloid.
Instead of capturing a figures artists like celluloid does, mplcamera takes an image snapshot of the whole figure. This has the advantage that
- all plot contents should be captured
- we have the opportunity to use savefig keyword arguments like facecolor and bbox_inches.
Further, using imageio to save a gif provides the opportunity for using mimsave_kwargs:
- to define a duration between frames in seconds, either as int, or as a list individually for each frame.
- we can set the loop to 1 (gif animation stops after 1 loop) or any other amount of loops.
Disadvantages:
- Saving the images takes a little more time than with mplcamera.
- It might be memory intensive to store a lot of images in memory.
The goal of this package is to provide a simple way to create gifs that can be used for example
- to show the creation process of a plot
- to aid visual storytelling by being able to focus longer on individual frames, which allows to show annotations only for that time (simply remove them after you snap the frame.)
Installation
pip install mplcamera
Usage
The usage remains the same as with celluloid:
- instantiate a Camera from a figure
import matplotlib.pyplot as plt
from mplcamera import Camera
fig = plt.figure()
cam = Camera(fig)
- After each step of plotting take snapshots of the figure
cam.snap()
- save the snapshots to a gif
cam.save('animation.gif')
Example:
import matplotlib.pyplot as plt
from mplcamera import Camera
fig, ax = plt.subplots()
ax.set_ylim(-0.25, 3.25)
cam = Camera(fig)
for i in range(4):
plt.plot([i] * 10)
cam.snap()
# use a different duration for frame 3. use loop=1 to not loop the gif
mimsave_kwargs = {'duration': [0.25, 0.25, 1, 0.25], 'loop': 0}
cam.save('mpl_camera_animation.gif', **mimsave_kwargs)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mplcamera-0.0.1.tar.gz
(2.2 kB
view details)
Built Distribution
File details
Details for the file mplcamera-0.0.1.tar.gz
.
File metadata
- Download URL: mplcamera-0.0.1.tar.gz
- Upload date:
- Size: 2.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8ee27fb4aa8255c6ef459afa2283aba342b3cc76e85bf10b600b0c1c396244a |
|
MD5 | 0139e0ddeade6d239b8ad55d44b83ecd |
|
BLAKE2b-256 | 23a266c7c702a30c285495cb33225a61203b694803dc148020ba683e3bf7fea3 |
Provenance
File details
Details for the file mplcamera-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: mplcamera-0.0.1-py3-none-any.whl
- Upload date:
- Size: 3.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b939c7231e9cbb5821fc9b1bbf3f81822e4bb6572a76eb2be332aa333d03d31f |
|
MD5 | 49c517339d4efc3e4c203e5db84e7239 |
|
BLAKE2b-256 | ca11908bd3aa667d2271d999fd4486da21c522c1b27c12d4dc8a17b344d8c978 |