Skip to main content

Add animations to revealjs presentations from Python code-blocks.

Project description

PyFragments

Add animated figures to your Quarto presentations.

Install

pip install pyfragments

Example

A Revealjs presentation created with Quarto, which displays an animated matplotlib figure:

Animated figure

This is created with the following code, in a Quarto .qmd file.

---
format: revealjs
---

## Example of an animated figure

Move to the next slide to see the transitions.

```{python}
# | output: asis
import matplotlib.pyplot as plt
from pyfragments import AnimatedFigure

with AnimatedFigure() as ani:
    plt.xlim(0, 10)
    plt.ylim(0, 10)
    for i in range(10):
        with ani.fragment():
            plt.scatter(i, i)

```

SVG example

To use SVG images, each call to a matplotlib function must include a group id (gid) with a value of .fragment.

Note: it is important to set embed-resources: true in the YAML options.

---
format: revealjs
embed-resources: true
---

# Example of an animated figure

## Animated scatterplot

Move to the next slide to see the transitions.

```{python}
from matplotlib.figure import Figure
from pyfragments.svg import animate

fig = Figure()
ax = fig.add_subplot()
for i in range(10):
    ax.scatter(i, i, gid=".fragment")
animate(fig)
```

To change the order of fragments, or make different elements appear at the same time, use .fragment-<num>:

ax.scatter(..., gid=".fragment-2")  # appears second
ax.scatter(..., gid=".fragment-1")  # appears first
ax.scatter(..., gid=".fragment-2")  # appears second

To allow animation of images, such as with ax.imshow, it is important to disable image.composite_image:

import matplotlib

matplotlib.rc("image", composite_image=False)

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

pyfragments-0.4.1.tar.gz (51.0 kB view hashes)

Uploaded Source

Built Distribution

pyfragments-0.4.1-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

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