Coder Social home page Coder Social logo

hanjinliu / whitecanvas Goto Github PK

View Code? Open in Web Editor NEW
49.0 1.0 0.0 16.44 MB

A type safe and backend independent plotting library for Python.

Home Page: https://hanjinliu.github.io/whitecanvas/

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%
bokeh matplotlib plot plotly pyqtgraph vispy

whitecanvas's Introduction

whitecanvas

PyPI - Version Python package index download statistics codecov PyPI - Python Version

A type safe and backend independent plotting library for Python, aiming at not the simplest, but the tidiest API.

Installation

pip install whitecanvas -U

Project Philosophy

Type safety

All the methods should be designed to have nice signature, and should return the same type of object, so that your program can be statically checked by the IDE.

Backend independency

Every plotting library has their own strength and weakness. Same code should work on different backends, so that you can choose the best one for different purposes.

Currently supported backends are matplotlib, pyqtgraph, vispy, plotly and bokeh. If you want other backends, please feel free to open an issue.

API tidiness

Most of (probably all of) the plotting libraries rely on the large number of arguments to configure the plot elements. They are usually hard to remember, forcing you to look up the documentation every time you want to make a plot.

whitecanvas tries to organize the methods, namespaces and arguments carefully so that you can make any kind of plot only with the help of the IDE's auto-completion and suggestions.

Documentation

Documentation is available here.

Examples

→ Find more examples

Rain-cloud plot in matplotlib

→ source

Super plot in matplotlib

→ source

Joint plot in matplotlib

→ source

Heatmap with text in pyqtgraph

→ source

Curve fitting in bokeh

→ source


whitecanvas's People

Contributors

hanjinliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

whitecanvas's Issues

Multi-color line layer

Multi-color lines are very useful to visualize additional dimension along the lines (such as trajectory). Implement it on the backend sides.

Date/time axis

This feature should be implemented on the backend side.
Since in most cases either x or y axis will be the date/time axis, maybe it's better to implement another Canvas class for this purpose.

InfCurve bugs

  1. Built-in autoscaling triggers recursion error in pyqtgraph.
  2. Cannot use some functions such as np.sin, which do not have signature.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.