Skip to main content

Save and reload editable matplotlib figures as .plt files

Project description

PltEdit

A simple tool to save matplotlib figures as a unique file and edit them afterward while keeping data integrity

Overview

PltEdit is a Python package that lets you save a matplotlib figure (or axes) — including all its underlying data — to a single .plt file, and reload it in another Python session or in a Streamlit-based GUI.

Unlike matplotlib's built-in savefig() (which exports to raster/vector image formats), a .plt file preserves the full figure object so it can be displayed, inspected, and edited programmatically.

File format

A .plt file is a NumPy archive (.npz) with a custom .plt extension. It contains two arrays:

Key Content
figure uint8 array — pickle-serialised matplotlib.figure.Figure
metadata 0-D object array — JSON string with creation info

The metadata JSON includes:

{
  "created_at": "2024-01-15T12:00:00+00:00",
  "python_version": "3.12.3 (main, ...)",
  "matplotlib_version": "3.10.1",
  "pltedit_version": "0.1.0"
}

Installation

# Core library only
pip install pltedit

# With the Streamlit GUI
pip install pltedit[app]

Usage

Python API

import matplotlib.pyplot as plt
import pltedit as plte

# Create a figure
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6], label="my data")
ax.set_title("My plot")

# Save to .plt
plte.save(fig, "my_figure.plt")

# Load in another session
fig2 = plte.load("my_figure.plt")

# Change style
fig2 = plte.set_style(fig2, "seaborn-v0_8")

# Display
fig2.show()

# Inspect metadata
from pltedit._io import get_metadata
meta = get_metadata("my_figure.plt")
print(meta["created_at"])

You can also pass an Axes object directly to save():

plte.save(ax, "from_axes.plt")

Streamlit GUI

pltedit                        # open the GUI (file upload)
pltedit path/to/figure.plt     # open the GUI with a pre-loaded file

The GUI lets you:

  • Upload any .plt file
  • View the stored figure metadata
  • Edit the figure title, axis labels, and axis limits interactively

Development

git clone https://github.com/VForiel/PltEdit.git
cd PltEdit
pip install -e ".[dev]"
pytest

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

pltedit-0.1.1.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

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

pltedit-0.1.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file pltedit-0.1.1.tar.gz.

File metadata

  • Download URL: pltedit-0.1.1.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pltedit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1471327d39cdbd7896a83631f8b3614eae1786f5c7cbfdc5601390dc642f7128
MD5 2a81279ced4ac258f1285f2a30f2f4f1
BLAKE2b-256 8048b190cded1e2722692d027c971670a39ab6193b8461785fd742d5cc765483

See more details on using hashes here.

Provenance

The following attestation bundles were made for pltedit-0.1.1.tar.gz:

Publisher: publish.yml on VForiel/PltEdit

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

File details

Details for the file pltedit-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pltedit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pltedit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff11af92f9c200befa905456dd164fe87ceceff5f65e47db69895beebd7d357a
MD5 ec8f114b068634f558b9df42a52270ec
BLAKE2b-256 ccdb8cba71b860167e948fbdf9888351411242c470a1d367084744f8af58fad8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pltedit-0.1.1-py3-none-any.whl:

Publisher: publish.yml on VForiel/PltEdit

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page