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.
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
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 .