Skip to main content

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:

  1. instantiate a Camera from a figure
import matplotlib.pyplot as plt
from mplcamera import Camera
fig = plt.figure()
cam = Camera(fig)
  1. After each step of plotting take snapshots of the figure
cam.snap()
  1. 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)

gif

Project details


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)

Uploaded Source

Built Distribution

mplcamera-0.0.1-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

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

Hashes for mplcamera-0.0.1.tar.gz
Algorithm Hash digest
SHA256 e8ee27fb4aa8255c6ef459afa2283aba342b3cc76e85bf10b600b0c1c396244a
MD5 0139e0ddeade6d239b8ad55d44b83ecd
BLAKE2b-256 23a266c7c702a30c285495cb33225a61203b694803dc148020ba683e3bf7fea3

See more details on using hashes here.

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

Hashes for mplcamera-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b939c7231e9cbb5821fc9b1bbf3f81822e4bb6572a76eb2be332aa333d03d31f
MD5 49c517339d4efc3e4c203e5db84e7239
BLAKE2b-256 ca11908bd3aa667d2271d999fd4486da21c522c1b27c12d4dc8a17b344d8c978

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page