Metadata-Version: 2.4
Name: matviz
Version: 1.0.1
Summary: matviz: matrix data visualization
Author-email: Jonathan Lansey <jonathan@lansey.net>
Maintainer-email: Jonathan Lansey <jonathan@lansey.net>
License: BSD-3-Clause
Project-URL: Homepage, https://github.com/JLansey/matviz
Project-URL: Repository, https://github.com/JLansey/matviz
Project-URL: Documentation, https://matviz.readthedocs.io/en/latest/
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: License :: OSI Approved :: BSD License
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: matplotlib>=3.4.0
Requires-Dist: seaborn>=0.11.0
Requires-Dist: scikit-learn>=0.24.0
Requires-Dist: python-dateutil>=2.8.0
Requires-Dist: pyyaml>=5.1
Requires-Dist: pytz
Requires-Dist: joblib
Requires-Dist: pymupdf
Requires-Dist: Pillow
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: flake8>=5.0.0; extra == "dev"
Requires-Dist: nbval>=0.10.0; extra == "dev"
Requires-Dist: pytest-mpl>=0.16.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx<8.1,>=7.0; extra == "docs"
Requires-Dist: pydata-sphinx-theme>=0.15; extra == "docs"
Requires-Dist: myst-parser<4,>=2.0; extra == "docs"
Requires-Dist: myst-nb>=1.0; extra == "docs"
Requires-Dist: numpydoc>=1.6; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
Requires-Dist: sphinx-design>=0.5; extra == "docs"
Requires-Dist: ipykernel>=6.0; extra == "docs"
Provides-Extra: notebook
Requires-Dist: mpld3>=0.5.0; extra == "notebook"
Provides-Extra: all
Requires-Dist: matviz[dev,docs,notebook]; extra == "all"
Dynamic: license-file

# matviz

[![PyPI](https://img.shields.io/pypi/v/matviz)](https://pypi.org/project/matviz/)
[![Python](https://img.shields.io/pypi/pyversions/matviz)](https://pypi.org/project/matviz/)
[![Tests](https://github.com/JLansey/matviz/actions/workflows/test.yml/badge.svg)](https://github.com/JLansey/matviz/actions/workflows/test.yml)
[![Docs](https://readthedocs.org/projects/matviz/badge/?version=latest)](https://matviz.readthedocs.io/en/latest/)
[![License](https://img.shields.io/pypi/l/matviz)](https://github.com/JLansey/matviz/blob/main/LICENSE)

**Data visualization for scientists, made easy.** Smart histograms, publication-ready plots, and data wrangling utilities.

![matviz example output](docs/source/images/front.png)

## Installation

```bash
pip install matviz
```

## Quick start

```python
from matviz.helpers import *

# Compare distributions with automatic binning
data = {'Control': np.random.randn(10000), 'Treatment': np.random.randn(5000) + 1}
nhist(data)

# 2D histogram from complex numbers
z = (5 + np.random.randn(1000)) * np.exp(1j * np.random.randn(1000))
ndhist(z, smooth=1)
```

## Modules

| Module | Description |
|--------|-------------|
| `histogram_utils` | Smart 1D (`nhist`) and 2D (`ndhist`) histograms with automatic binning |
| `viz` | Plot ranges, streamgraphs, log-fitting, polar grids, complex plots, `nicefy` |
| `etl` | `nan_smooth`, cross-correlation, JSON with complex numbers, time utilities |
| `cbrt_scale` | Cube-root axis scale for matplotlib |
| `circle_utils` | Smallest enclosing circle and convex hull area |
| `datetime_converter` | Reversible timestamp codec (`DateCodec`) |
| `doctools` | PDF image extraction and compression |
| `helpers` | MATLAB-like environment with all imports |

## Documentation

Full documentation at **[matviz.readthedocs.io](https://matviz.readthedocs.io/en/latest/)**.

## License

BSD-3-Clause
