Skip to main content

Interactive plotting for the Jupyter notebook, using d3.js and ipywidgets.

Project description

bqplot

Travis Documentation Binder Chat

2-D plotting library for Project Jupyter

Introduction

bqplot is a 2-D visualization system for Jupyter, based on the constructs of the Grammar of Graphics.

Usage

Wealth of Nations

In bqplot, every component of a plot is an interactive widget. This allows the user to integrate visualizations with other Jupyter interactive widgets to create integrated GUIs with a few lines of Python code.

Goals

  • Provide a unified framework for 2-D visualizations with a pythonic API
  • Provide a sensible API for adding user interactions (panning, zooming, selection, etc)

Two APIs are provided

  • Object Model, which is inspired by the constructs of the Grammar of Graphics (figure, marks, axes, scales). This API is verbose but is fully customizable
  • pyplot, which is a context-based API similar to Matplotlib's pyplot. pyplot provides sensible default choices for most parameters

Trying it online

To try out bqplot interactively in your web browser, just click on the binder link:

Binder

Dependencies

This package depends on the following packages:

  • ipywidgets (version >=7.0.0, <8.0)
  • traitlets (version >=4.3.0, <5.0)
  • traittypes (Version >=0.2.1, <0.3)
  • numpy
  • pandas

Installation

Using pip:

$ pip install bqplot

Using conda

$ conda install -c conda-forge bqplot

If you are using JupyterLab <=2:

$ jupyter labextension install @jupyter-widgets/jupyterlab-manager bqplot
Development installation

For a development installation (requires JupyterLab (version >= 3) and yarn):

$ git clone https://github.com/bqplot/bqplot.git
$ cd bqplot
$ pip install -e .
$ jupyter nbextension install --py --overwrite --symlink --sys-prefix bqplot
$ jupyter nbextension enable --py --sys-prefix bqplot

Note for developers: the --symlink argument on Linux or OS X allows one to modify the JavaScript code in-place. This feature is not available with Windows.

For the experimental JupyterLab extension, install the Python package, make sure the Jupyter widgets extension is installed, and install the bqplot extension:

$ pip install "ipywidgets>=7.6"
$ jupyter labextension develop . --overwrite

Whenever you make a change of the JavaScript code, you will need to rebuild:

cd js
yarn run build

Then refreshing the JupyterLab/Jupyter Notebook is enough to reload the changes.

Running tests

You can install the dependencies necessary to run the tests with:

    conda env update -f test-environment.yml

And run it with for Python tests:

    pytest

And cd js to run the JS tests with:

yarn run test

Every time you make a change on your tests it's necessary to rebuild the JS side:

yarn run build

Examples

Using the pyplot API

Pyplot Screenshot

Using the Object Model API

Bqplot Screenshot

Documentation

Full documentation is available at https://bqplot.readthedocs.io/

Install a previous bqplot version (Only for JupyterLab <= 2)

In order to install a previous bqplot version, you need to know which front-end version (JavaScript) matches with the back-end version (Python).

For example, in order to install bqplot 0.11.9, you need the labextension version 0.4.9.

$ pip install bqplot==0.11.9
$ jupyter labextension install bqplot@0.4.9

Versions lookup table:

back-end (Python) front-end (JavaScript)
0.12.14 0.5.14
0.12.13 0.5.13
0.12.12 0.5.12
0.12.11 0.5.11
0.12.10 0.5.10
0.12.9 0.5.9
0.12.8 0.5.8
0.12.7 0.5.7
0.12.6 0.5.6
0.12.4 0.5.4
0.12.3 0.5.3
0.12.2 0.5.2
0.12.1 0.5.1
0.12.0 0.5.0
0.11.9 0.4.9
0.11.8 0.4.8
0.11.7 0.4.7
0.11.6 0.4.6
0.11.5 0.4.5
0.11.4 0.4.5
0.11.3 0.4.4
0.11.2 0.4.3
0.11.1 0.4.1
0.11.0 0.4.0

Development

See our contributing guidelines to know how to contribute and set up a development environment.

License

This software is licensed under the Apache 2.0 license. See the LICENSE file for details.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bqplot-0.12.37.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bqplot-0.12.37-py2.py3-none-any.whl (1.2 MB view details)

Uploaded Python 2Python 3

File details

Details for the file bqplot-0.12.37.tar.gz.

File metadata

  • Download URL: bqplot-0.12.37.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for bqplot-0.12.37.tar.gz
Algorithm Hash digest
SHA256 6847cf447f458365bd86f9662079ad7562024e61661b5728e31598851b628ff0
MD5 1bd69bb519ded71c5b8650242ef7a573
BLAKE2b-256 03e1297574fcbcd0edbdc2de6e579204562eae5a82b88a9522395746ac764d28

See more details on using hashes here.

File details

Details for the file bqplot-0.12.37-py2.py3-none-any.whl.

File metadata

  • Download URL: bqplot-0.12.37-py2.py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for bqplot-0.12.37-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 803836a60cf7988b63ac0e06e24b48b81a1cd6aeabee7a0a9bc8c60eb03f2591
MD5 3cf7a85cd7a82e3424e3e4c067206abb
BLAKE2b-256 2113ba3bf4d3365d4bc775984fe49f1afab48e0b38e58616d00070c12670c79b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page