/scaleogram

Scaleogram plot for Continuous Wavelet Transform made easy

Primary LanguagePythonMIT LicenseMIT

scaleogram

Scaleogram is a user friendly plot tool for 1D data analysis with Continuous Wavelet Transform built on the PyWavelets library.

I started this project when realizing how harsh it can be to build nice plots of wavelets scaleogram with axes ticks and labels consistent with the actual location of features. Hence this module aim to provide a reliable tool for either quick data analysis or publication.

It has the following features:

  • simple call signature for complete beginners

  • readable axes and clean matplotlib integration

  • many options for changing scale, spectrum filter, colorbar integration, etc...

  • support for periodicity and frequency units, consistent with labelling

  • speed, uses a N*log(N) algorithm for transforms

  • portability: tested with python2.7 and python3.7

  • comprehensive error messages and documentation with examples

  • support for Cone Of Influence mask

Example

Install with pip

Installation should be straightforward with

pip install scaleogram

Install from github

git clone http://github.com/alsauve/scaleogram
cd scaleogram
python ./setup.py install --user

Prerequisites

This module depends on

  • PyWavelet >= 1.0
  • matplotlib >= 2.0
  • numpy >= 1.0

Documentation

A lot of documentation and examples are available online from the docstrings

Jupyter notebook are also provided for quickstarting

Running the tests

A features test matrix can be plotted with

# launch graphical tests
python -m scaleogram.test

Built With

  • ViM - The editor
  • Spyder - The Scientific Python Developement Environment
  • Jupyter - The Jupyter Notebook

Realeases

See the Releases page.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

  • The team behind PyWavelet for their nice job into making wavelet transform available
  • The Matlab environement for inspiration and good documentation
  • Mabel Calim Costa for the waipy package and inspiration