Skip to main content

Make figures with context managers in python: quicker, simpler, more readable.

Project description

Figurex

Make figures with context managers in python: quicker, simpler, more readable.

with Figure() as ax:
    ax.plot([1,2],[3,4])

Idea

Tired of lengthy matplotlib code just for simple plotting?

# How plotting used to be:
import matplotlib.pyplot as plt

fig, axes = plt.subplots(1,2, figsize=(4,5))
plt.set_title("My plot")
ax = axes[0]
ax.plot([1,2],[3,4])
ax = axes[1]
ax.plot([2,3],[4,5])
fig.savefig("file.png", bbox_inches='tight')
plt.show()

Beautify your daily work with shorter and more readable code:

# How plotting becomes with figurex:
from figurex import Figure, Panel

with Figure("My plot", layout=(1,2), size=(4,5), save="file.png"):
    with Panel() as ax:
        ax.plot([1,2],[3,4])
    with Panel() as ax:
        ax.plot([2,3],[4,5])

The Figure() environment generates the matplotlib-based figure and axes for you, and automatically shows, saves, and closes the figure when leaving the context. It is just a wrapper around standard matplotlib code, you can use ax to modify the plot as you would normally do. Extend it your way without limits!

Examples

Make a simple plot:

with Figure("A simple plot") as ax:
    ax.plot([1,2],[3,4])

A plot with two panels:

with Figure(layout=(1,2), size=(6,3)):
    with Panel("a) Magic") as ax:
        ax.plot([1,2],[3,4])
    with Panel("b) Reality", grid="") as ax:
        ax.plot([5,5],[6,4])

Save a plot into memory for later use (e.g. in FPDF):

with Figure("Tea party", show=False):
    with Panel() as ax:
        ax.plot([5,5],[6,4])
my_figure = Figure.as_object()
# <_io.BytesIO at 0x...>

Plotting maps:

from figurex import Basemap

with Figure(size=(3,3)):
    with Basemap("Germany", extent=(5,15,46,55), tiles="relief") as Map:
        x,y = Map(12.385, 51.331)
        Map.scatter(x, y,  marker="x", color="red", s=200)

Figurex examples

Install

pip install figurex

If you want to use geospatial mapping features with Basemap or Cartopy, install the corresponding optional features:

pip install figurex[basemap]
pip install figurex[cartopy]

Requirements

  • python >3.9
  • numpy
  • matplotlib
  • cartopy >=0.23 (optional)
  • basemap >=1.4.1 (optional)

Related

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

figurex-0.2.4.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

figurex-0.2.4-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file figurex-0.2.4.tar.gz.

File metadata

  • Download URL: figurex-0.2.4.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.9 Windows/10

File hashes

Hashes for figurex-0.2.4.tar.gz
Algorithm Hash digest
SHA256 7fd532bf071d0eb974a7e9bcbefb01b3d89dd93685f300c2dff36769aac71d36
MD5 ff55d801087a81e3121eaec6743be542
BLAKE2b-256 70e494f4755d31faf64b1514c7f767c955613070aec112648ef690fb32944ce3

See more details on using hashes here.

Provenance

File details

Details for the file figurex-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: figurex-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.9 Windows/10

File hashes

Hashes for figurex-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ae9d875adfac21b8241c5815b6622fe384bdc822a5f60f7616a5cb0ba9d51d90
MD5 112cde1d3abe90e6cfcc7d7da48333a2
BLAKE2b-256 817d94baf8a99c950a0a0697cdc6e4334f9e4cf878ba2f371d99255150e786db

See more details on using hashes here.

Provenance

Supported by

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