Skip to content

Releases: brianckeegan/memeplotlib

v0.3.0

13 Feb 01:51
0c6dcee

Choose a tag to compare

What's Changed

  • Fix GitHub Pages deployment failing on release tags #11
  • Fix README images: use distinct text for each example section #12
  • Add configurable base font size for auto-sizing #13
  • Add workflow to automatically regenerate example images #14

Full Changelog: v0.2.0...v0.3.0

v0.2.0

13 Feb 00:49
b43c548

Choose a tag to compare

What's Changed

  • Add rendered output images for all code examples in docs and README #8
  • Use real meme template images instead of synthetic gradients #10

Full Changelog: Major...v0.2.0

v0.1.0

12 Feb 21:03
998b83a

Choose a tag to compare

Highlights

This is the first public release of memeplotlib, a Python library for creating image-macro memes using matplotlib for rendering and the memegen API for template discovery. Whether you need a quick one-liner meme or want to memify an existing scientific figure, this release gives you two complete APIs and a full suite of configuration and template tooling to do it.


Installation

pip install memeplotlib

Requires Python 3.10+.


What's New

Functional API

A simple module-level interface for the most common use cases:

import memeplotlib as memes

# One-liner from a memegen template
memes.meme("buzz", "memes", "memes everywhere")

# Customize font and color
memes.meme("drake", "writing tests", "shipping to prod",
           font="impact", color="yellow")

# Get the figure back for further customization
fig, ax = memes.meme("distracted", "my project", "new framework", "me",
                     show=False)

# Save directly to disk
memes.meme("doge", "such code", "very bug", savefig="meme.png", show=False)

# Use a local image as the template
memes.meme("/path/to/image.jpg", "top text", "bottom text")

Object-Oriented API

A chainable Meme class for step-by-step construction:

from memeplotlib import Meme

# Step by step
m = Meme("buzz")
m.top("memes")
m.bottom("memes everywhere")
m.save("output.png")

# Or fully chained
Meme("doge").top("such code").bottom("very bug").show()

Memify Existing Figures

Turn any existing matplotlib figure into a meme — useful for scientific
communication, presentations, or any plot that just needs a caption:

import matplotlib.pyplot as plt
import memeplotlib as memes

fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 4, 9])
memes.memify(fig, "stonks")

Global Configuration

Set library-wide defaults once rather than repeating them per call:

import memeplotlib as memes

memes.config.font = "comic"
memes.config.color = "yellow"
memes.config.style = "none"   # disable auto-uppercase

Template Discovery

Search and enumerate the full memegen template catalog:

from memeplotlib import TemplateRegistry

reg = TemplateRegistry()
results = reg.search("dog")
all_templates = reg.list_all()

Text Rendering

  • Classic outlined meme look via matplotlib's patheffects.Stroke
  • Bundled Anton font as a fallback for systems without Impact installed
  • Supports arbitrary font, color, and casing configuration

Local Template Caching

Templates fetched from the memegen API are cached locally via platformdirs
for offline reuse and faster subsequent renders.


Dependencies

Package Minimum version
matplotlib 3.0.0
requests
numpy
Pillow
platformdirs

Documentation

Full documentation — including a tutorial, user guide, and API reference — is
available at
brianckeegan.github.io/memeplotlib


Known Limitations & Upcoming Work

  • Package not yet published to PyPI or conda-forge
    (tracked in [#2](../../issues/2))
  • README and documentation pages lack rendered output images for examples
    (tracked in [#1](../../issues/1))
  • No Windows or macOS CI matrix yet; Linux only
  • Template search requires an active internet connection on first use

License

MIT © 2025 Brian Keegan