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.44.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.44-py2.py3-none-any.whl (1.2 MB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for bqplot-0.12.44.tar.gz
Algorithm Hash digest
SHA256 39f33232ae4b102ec8ef1c116e05601059519ed316c4e9899c0310e3ed23f29e
MD5 88a8cf37e8d2a430ae8e2dd6565d560d
BLAKE2b-256 7dc6061d10301f3e02e7791e02d1a016550ea5bd01197f1f7ca057b65ad2cd11

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bqplot-0.12.44-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cad65bf5c4ce7ea7b03e1c674340f9274c0975941e63057831b29f7c2c37f144
MD5 20b81e6b195e549642994a38cfa64cf6
BLAKE2b-256 92bf2ebe83bc691f5f7e68702caa38cca78d74f8a03b87eb962b62382d38490c

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