Skip to main content

Helper for matplotlib subplots.

Project description

showy

showy is a helper for matplotlib subplots.

Usage

showy can be used in a script-like manner.

Let's first define the layout:

layout = {
    "title": "Example",
    "graphs": [
        {
            "curves": [{"var": "sine_10"}],
            "x_var": "time",
            "y_label": "Fifi [mol/m³/s]",
            "x_label": "Time [s]",
            "title": "Sinus of frequency *"
        },
        {
            "curves": [{"var": "sine_30"}],
            "x_var": "time",
            "y_label": "Riri [Hz]",
            "x_label": "Time [s]",
            "title": "Second graph"
        },
        {
            "curves": [
                {
                    "var": "sine_100",
                    "legend": "origin",
                },
                {
                    "var": "sine_100p1",
                    "legend": "shifted",
                }
            ],
            "x_var": "time",
            "y_label": "Loulou [cow/mug]",
            "x_label": "Time [s]",
            "title": "Third graphg"
        }
    ],
    "figure_structure": [3, 1],
    "figure_dpi": 92.6
}

Now, let's create dummy data:

import numpy as np

data = dict()
data["time"] = np.linspace(0, 0.1, num=256)

data["sine_10"] = np.cos(data["time"] * 10 * 2 * np.pi)
data["sine_30"] = np.cos(data["time"] * 30 * 2 * np.pi)
data["sine_100"] = np.cos(data["time"] * 100 * 2 * np.pi)
data["sine_100p1"] = 1. + np.cos(data["time"] * 100 * 2 * np.pi)

Finally, we just have to display it:

from showy import showy

showy(layout, data)

Tip: Define the layout in a yaml or json file in order to it across applications.

If you define it in a yaml file, then load it with (need to install pyyaml:

import yaml

with open(filename, 'r') as file:
  layout = yaml.load(file, Loader=yaml.SafeLoader)

If you define it in a json file, then load it with:

import json

with open(filename, 'r') as file:
  layout = json.load(filename)

Using wildcard *

A neat feature of showy is the wild card usage to simplify layout creation. For example, if you have 3 variables called var_1, var_2, var_3, you only need to define the graph layout for a variable var_*.

The example above reduces to:

layout = {
    "title": "Example",
    "graphs": [{
        "curves": [{"var": "sine_*"}],
        "x_var": "time",
        "y_label": "Sine [mol/m³/s]",
        "x_label": "Time [s]",
        "title": "Sinus of frequency *"
    }],
    "figure_structure": [3, 3],
    "figure_dpi": 92.6
}

json-schema standard

showy is based on a json-schema standard defined here. Check this out to learn more about the usage of the json-schema standard. (For your daily usage of showy you just need to ensure your layout respects the schema)

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

showy-0.1.5.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

showy-0.1.5-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file showy-0.1.5.tar.gz.

File metadata

  • Download URL: showy-0.1.5.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.14

File hashes

Hashes for showy-0.1.5.tar.gz
Algorithm Hash digest
SHA256 aa0f7dbb9304ebf7bbd10c8f6db801ba1f4ff7cd722367ead07552e9bebbc724
MD5 046466da6414b945a595621c929d4912
BLAKE2b-256 5681f254a5921274f8d48705aba77dde4ecb471f5d42085cc744225848130d8a

See more details on using hashes here.

File details

Details for the file showy-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: showy-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.14

File hashes

Hashes for showy-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6c60c3fa7d7d1af31e18e76cabc2e24dd8dd44b7aa377d422494334d75af6277
MD5 fcd37772d4ea8e8789e14c71941de08e
BLAKE2b-256 a0de56f43ec5ecc87584df0faf915f14f68c46fb7927a72d0069083be37f2680

See more details on using hashes here.

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