Skip to main content
pyplotdesigner

Design matplotlib figure layouts visually, then reuse them in Python.

PyPI package: https://pypi.org/project/pyplotdesigner/

Quickstart (recommended: PyPI)

1) Install with pip

pip install -U pip
pip install pyplotdesigner

2) Start the GUI

python -m pyplotdesigner.gui.main

This opens your browser automatically. If it does not, open:

  • http://127.0.0.1:8080/ui

Optional:

  • python -m pyplotdesigner.gui.main --no-browser (disable auto-open)
  • python -m pyplotdesigner.gui.main --reload (enable auto-reload for dev)

3) Build a layout in the GUI

  1. Click Add Axis.
  2. Drag boxes into place.
  3. Add constraints (align, match size, aspect ratio, spacing, etc.).
  4. Click Quick Copy to copy the code directly to your clipboard or alternatively click Import/Export for access to the layout string.

4) Use the exported layout in Python

# following lines will be automatically copied to your clipboard
from pyplotdesigner.core.design_loader import make_figure_from_b64
layout_b64 = "PASTE_EXPORTED_STRING"
fig, axes = make_figure_from_b64(layout_b64)

# example usage:
# left_panel = axes['left_panel']
# left_panel.plot([0, 1], [0, 1])

If you need to: clone and install locally

git clone git@github.com:gnwong/pyplotdesigner.git
cd pyplotdesigner
pip install -U pip
pip install -e .

Run tests

pip install pytest
pytest

Frontend E2E tests (Playwright)

These tests exercise the real browser UI against the FastAPI app.

Install once:

npm install
npx playwright install chromium

Run E2E suite:

npm run e2e

Useful variants:

npm run e2e:headed
npm run e2e:ui

Contributing

Contributions are welcome.

Expected workflow:

  1. Open an issue (or reference an existing one) describing the change.
  2. Create a focused branch and implement the change.
  3. Add or update tests for any new feature or behavior change.
  4. Run tests locally (pytest) and make sure they pass.
  5. Open a PR with a clear summary and testing notes.

Guidelines:

  • Keep changes focused and minimal.
  • Preserve existing behavior unless your PR intentionally changes it.
  • If behavior changes, document it and include regression coverage.

License

MIT (see LICENSE).

Metadata

Release files for pyplotdesigner 0.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for pyplotdesigner 0.5.2
File Interpreter ABI Platform
pyplotdesigner-0.5.2-py3-none-any.whl Python 3 none any Details

Release files / pyplotdesigner-0.5.2-py3-none-any.whl

Download URL pyplotdesigner-0.5.2-py3-none-any.whl
Size 39.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1cb2cbcbbbc26850ebe57c7d8443d90e776d2dc40c706ac6e5d97c336e47cd61
BLAKE2b-256 checksum
How to use checksums
9e0a4314c79380f11018d2f8871282af51461cbaffe659224c1246bc6e14ba47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.5

Release history Release notifications | RSS feed

This release

0.5.2 This release

1 release file

0.5.1

2 release files

0.5.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page