Skip to main content
gsplot logo

Documentation PyPI Python License: MIT

gsplot

gsplot creates publication-quality scientific figures with a concise API on top of Matplotlib. It adds paper-aware layouts, deterministic plotting and styling helpers, validated JSON defaults, and lightweight build metadata while returning ordinary Matplotlib Figure, Axes, and Artist objects.

The package is still evolving. Check the documentation and the issue tracker before depending on behavior that is not covered by the public API.

Install

gsplot supports Python 3.10 and newer:

python -m pip install gsplot

Quick example

import gsplot as gs

fig, axes = gs.subplots("AB")
gs.line(axes["A"], [0, 1, 2], [0, 1, 4], label="quadratic")
gs.scatter(axes["B"], [0, 1, 2], [0, 1, 4], label="samples", s=15)
gs.label(axes, "x", "value", square=True, index="in")
gs.legend(axes)
gs.save(fig, "quickstart", show=False)

This creates a two-panel Matplotlib figure, saves quickstart.png and quickstart.pdf, and remains compatible with regular Matplotlib operations.

The canonical helpers always receive their Figure or Axes target explicitly. save writes PNG and PDF transactionally at 600 DPI with a tight crop and displays the Figure after successful writes by default; pass show=False for batch or headless output. Use crop=False when output dimensions must match the Figure design canvas exactly. The advanced savefig helper retains its conservative output controls.

For a complete scientific example, see the publication example.

Configuration

Configuration is optional and explicit. Load a schema-2 JSON file and pass the immutable value to supported functions:

import gsplot as gs

config = gs.load_config("path/to/gsplot.json")
fig, axes = gs.subplots(config=config)

When a value is specified more than once, the precedence is:

  1. an argument passed directly to the function;
  2. the supplied immutable Config value;
  3. the function's default value.

Canonical code never searches the working directory or home directory for a configuration file. See the configuration guide for the supported schema, precedence, and backend notes.

Development

The repository uses Poetry and targets Python 3.10 or newer. With a compatible Python interpreter:

python -m pip install "poetry==2.4.1"
poetry install
MPLBACKEND=Agg poetry run pytest -q
MPLBACKEND=Agg poetry run sphinx-build -W -b html docs docs/_build/html

The scripts under examples/ are executable documentation. Run one from its own directory, for example:

cd examples/layouts && python mosaic.py

examples/compatibility/legacy_v0.py intentionally demonstrates the deprecated 0.x surface. All other plotting examples use the canonical explicit-target API.

See the developer setup guide for formatting, type checking, packaging, and Docker instructions.

For private vulnerability reports and the supported-version policy, see SECURITY.md.

Authors and maintenance

This repository builds on the original code developed by Giordano Mattoni.

  • Original author: Giordano Mattoni
  • Maintainer: Soichiro Yamane

License

This project is distributed under the MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gsplot-0.4.1.tar.gz (145.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gsplot-0.4.1-py3-none-any.whl (200.6 kB view details)

Uploaded Python 3

File details

Details for the file gsplot-0.4.1.tar.gz.

File metadata

  • Download URL: gsplot-0.4.1.tar.gz
  • Upload date:
  • Size: 145.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gsplot-0.4.1.tar.gz
Algorithm Hash digest
SHA256 21d205e2b17b2507a04a8df7993789d204bc31bc1e7c24dabfec923b9306b150
MD5 26a446f51d7835686a465598f5274352
BLAKE2b-256 722a981c65c61c11cfd311b2280071520f7de8353bb0ebb8caff3c5f45a3618d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gsplot-0.4.1.tar.gz:

Publisher: publish_package.yml on SoichiroYamane/gsplot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gsplot-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: gsplot-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 200.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gsplot-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b831f0fc1f2a7c0020b7f82ea671eae9d534ec58ca9df843e5ef9baca71e0258
MD5 ac7065f06f8b3b55676a3386edd3aee5
BLAKE2b-256 175482854cb1768f5782ec1707ee3d6d0b1fd1c8cd5d44c19332645505823fc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gsplot-0.4.1-py3-none-any.whl:

Publisher: publish_package.yml on SoichiroYamane/gsplot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.2

2 files

This release

0.4.1 This release

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 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