This guide shows how to run the bundled example and how to define your own renderer.

Requirements

  • Python 3.9+
  • To run the examples: numpy, matplotlib (installed via extras)

Install

pip install paperfig

For installing with dependencies of examples

pip install "paperfig[examples]"

Run the example

  • Clone the source repository
    git clone https://github.com/sekika/paperfig.git
    
  • Change into the examples directory and run the script:
    cd paperfig/docs/examples
    python fig.py
    
  • Outputs in docs/examples/fig:
    • fig1.pdf, fig2.pdf, fig3a.pdf … fig3d.pdf
    • fig3.pdf (2×2 multi‑panel)
    • figures.pdf (all pages concatenated)

Example files

Minimal API example

  • Define a renderer that writes fig{index}.pdf into the output directory; register and build:
from paperfig.figure import Fig
import matplotlib.pyplot as plt

def render_hello(index, data, verbose=1):
    fig, ax = plt.subplots()
    ax.text(0.5, 0.5, f"Hello {index}", ha="center", va="center")
    plt.savefig(f"out/fig{index}.pdf"); plt.close(fig)

fig = Fig("fig.json")
fig.fig_dir = "out"
fig.function = {"hello": render_hello}
fig.create_pdf()

JSON with a multi‑panel

{
  "1": { "type": "hello" },
  "2": { "type": "hello" },
  "3": {
    "type": "multi",
    "row": 1,
    "column": 2,
    "figures": {
      "3a": { "type": "hello" },
      "3b": { "type": "hello" }
    }
  }
}

Next steps