Skip to content

Latest commit

 

History

History
99 lines (69 loc) · 3.74 KB

README_template.md

File metadata and controls

99 lines (69 loc) · 3.74 KB

Binder Build Status Coverage Status

jp_doodle

jp_doodle makes implementing special purpose interactive visualizations easy. It is designed to facilitate the development of bespoke scientific data presentation and interactive exploration tools.

Quick references: Please see the Javascript quick reference or the Python/Jupyter quick reference for an introduction to building visualizations using `jp_doodle`.

Below is a screenshot of the multidimensional frames example using jp_doodle dual canvases.

Please click the youtube link to view a presentation about dual canvases and related technologies.

The jp_doodle package provides jQuery plugins which make it easy to build interactive visualizations in Javascript. The package also provides Jupyter widget interfaces to make it easy to build visualizations for Jupyter notebooks.

Most demonstration code is provided as Jupyter notebooks under the ./notebooks directory. You can view ./notebooks using nbviewer or use Binder to run the notebooks interactively. The Tutorial introduces dual canvases primarily from a Javascript perspective. The Simple Python Examples shows some examples of using dual canvases in Jupyter widgets using only the Python interface. The Feature demonstrations sub-directory provides many other examples of how to use the various features of dual canvases both in the Javascript and the Python contexts.

Installation

To install the package for use with Jupyter notebooks:

python -m pip install https://github.com/AaronWatters/jp_doodle/zipball/master

To use the package with Jupyter Lab you also need to build the Jupyterlab Javascript resources with widget support and jp_proxy_widget:

jupyter labextension install @jupyter-widgets/jupyterlab-manager  --no-build
jupyter labextension install jp_proxy_widget

dual_canvas

The dual_canvas jQuery component of the jp_doodle package supports implementing visualizations using two dimensional HTML5 canvas elements. It provides

  • Graphical object creation, deletion, mutation, and smooth feature transitions.

  • Managed coordinate spaces including the pixel coordinate space, the canvas coordinate space and reference frame coordinate spaces.

  • Local and global event coordination to identify objects under positional mouse events and relative event coordinate transformations.

  • Bounding box calculation and canvas fitting support.

  • Axis creation helpers.

  • A built in "lasso tool" for selecting multiple objects in a canvas.

  • Animation support.

  • Python wrappers for building Jupyter widgets containing dual canvases .

DEMOS_HERE