Metadata-Version: 2.4
Name: ograph
Version: 1.0.0
Summary: Experimental Matplotlib API
Author-email: Lyodine <lyodine@github.com>
Project-URL: Documentation, https://yidingli.com/docs/ograph/
Project-URL: Repository, https://yidingli.com/projects/ograph/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.12.0
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: matplotlib>=3.8.4
Dynamic: license-file

<p align="center">
<img src="./media/alternative_logo.png" width=100>
</p>


# OGraph

A lightweight Matplotlib wrapper.

## Installation

Install from PyPI:

```shell
pip install ograph
```

Install from source:

```
pip install .
```

Please see [documentation](https://yidingli.com/projects/ograph/docs/install-and-build.html) for detailed instructions.

## Components

The library have the following modules:

| Component                                          | Description                |
| -------------------------------------------------- | -------------------------- |
| [ofig](./ograph/ofig/) | Create and check the dimensions of plots |
| [oplot](./ograph/oplot/) | Plot to the current axes  |
| [oconfig](./ograph/oconfig/)                       | Configure plots            |
| [ofunc](./ograph/ofunc/) | Supply test functions and matrices |
| [applications.swarm](./ograph/applications/swarm/) | Plot point clusters |

The ograph.oplot library contains the following plotters: 

| Plotter   | Dimension of Plot | Data               |
| --------- | ----------------- | ------------------ |
| heatmap   | 2                 | $M\times N$ matrix |
| chull     | 2, 3              | $R^2$ or $R^3$     |
| arrow     | 2, 3              | $R^2$ or $R^3$     |
| plot      | 2                 | $R\rightarrow R$   |
| wireframe | 3                 | $R^2\rightarrow R$ |
| surface   | 3                 | $R^2\rightarrow R$ |
| stems     | 2                 | $R\rightarrow R$   |
| stem      | 2                 | `xs`  and `ys      |
| patch     | Any               | Colours and labels |

The `application.swarm` module contains the following plotters:


plot_positions 2 list[R^2] or list[list[R^2]]
plot_bests 2 list[R^2]
