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.43.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for bqplot-0.12.43.tar.gz
Algorithm Hash digest
SHA256 f2b469d1f03df4f51873cb0406a24b56cdf4a835fc5aa9560776fc636b8b3449
MD5 484c5048b064b409d72b29a1fe1add54
BLAKE2b-256 3e47b8613e25549ccfb9cc5836086772e19db0246c10978d8eb13c7980820a74

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bqplot-0.12.43-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 65aa2f10bf2e4b500e628d5c1b876e6d2cdc2b82883200e4b1bb65edc17d111b
MD5 6a2f23399567b9013295160184b6aff4
BLAKE2b-256 adf5717a355a47e8ba28ff9fcbe63d3014b55a8d20f3983582205085e85e2869

See more details on using hashes here.

Supported by

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