Metadata-Version: 2.4
Name: plotski
Version: 0.2.1
Summary: Convenient interactive plotting in Python.
Author-email: "Lukasz G. Migas" <lukas.migas@yahoo.com>
License: BSD 3-Clause License
Project-URL: homepage, https://github.com/lukasz-migas/plotski
Project-URL: repository, https://github.com/lukasz-migas/plotski
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Utilities
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.md
Requires-Dist: bokeh>=3.0.0
Requires-Dist: numpy<2,>=1.21
Requires-Dist: scikit-image>=0.19.0
Requires-Dist: matplotlib>=3.3.0
Requires-Dist: koyo
Provides-Extra: test
Requires-Dist: pytest>=6.0; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: dev
Requires-Dist: black==22.1.0; extra == "dev"
Requires-Dist: ipython; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pdbpp; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: rich; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: plotski[test]; extra == "dev"
Dynamic: license-file

# plotski

[![PyPI](https://img.shields.io/pypi/v/plotski.svg)](https://pypi.python.org/pypi/plotski)
[![Docs](https://readthedocs.org/projects/plotski/badge/?version=latest)](https://plotski.readthedocs.io/en/latest/?version=latest)
[![Updates](https://pyup.io/repos/github/lukasz-migas/plotski/shield.svg)](https://pyup.io/repos/github/lukasz-migas/plotski/)
[![tests](https://github.com/lukasz-migas/plotski/actions/workflows/test_and_deploy.yml/badge.svg)](https://github.com/lukasz-migas/plotski/actions/workflows/test_and_deploy.yml)

Package to generate easily generate interactive figures and export them to HTML documents.

The idea behind this package is to provide an easy-to-use interface to generate structured 
HTML documents with interactive visualisations. The library is not meant to fill every gap
but to provide several common plot types such as `line`, `scatter` or `image` type-plots and
additional annotations and enable easy exportation to HTML document.

All plots are generated using the excellent `bokeh` library.

Typical usage might be

```python
import numpy as np
from plotski import PlotStore

x = np.arange(100)
y = np.random.randint(0, 500, 100)

store = PlotStore(
    ".",  # this will save the plot to current working directory.
)
tab_name = store.add_tab("Random plot")
# data is provided in dictionary. Data validation happens during plot generation
store.plot_spectrum(tab_name, {"x": x, "y": y})
# this will generate the HTML document (in memory using temporary file)
store.show()
# you can instead save to disk which will save the document to disk
store.save()
```

## Features


## Planned

* Improve generation of layouts.
* Improve modification of plot parameters.
* Add custom JS support.


## Licence
Free software: MIT license

## Documentation
https://plotski.readthedocs.io
