Plotting library for IPython/Jupyter notebooks

Overview

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

  • Users can build custom visualizations using the internal object model, which is inspired by the constructs of the Grammar of Graphics (figure, marks, axes, scales), and enrich their visualization with our Interaction Layer.
  • Or they can use the context-based API similar to Matplotlib's pyplot, which 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

To enable bqplot for JupyterLab version 1 or 2 (not needed for JupyterLab 3.0):

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

For a development installation (requires npm (version >= 3.8) and node (version >= 4.0)):

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

Loading bqplot

# In a Jupyter notebook
import bqplot

That's it! You're ready to go!

Examples

Using the pyplot API

Pyplot Screenshot

Using the bqplot internal object model

Bqplot Screenshot

Documentation

To get started with using bqplot, check out the full documentation

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 [email protected]

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.

Comments
  • not able to figure out why bqplot stops working, and how to make it work again quickly

    not able to figure out why bqplot stops working, and how to make it work again quickly

    hi,

    After having removed bqplot, it seems it doesn't want to plot anymore, Ipython stalls and nothing happens.

    I don't see any error message, kernerl doesn't want to interrupt itself (remains in non-empty circle mode). Have you a wild guess ? (using current trunk in this try)

    bqplot_blocking

    !pip list
    
    adodbapi (2.6.0.7)
    alabaster (0.7.6)
    astroid (1.3.6)
    Babel (2.1.1)
    backports-abc (0.4)
    backports.ssl-match-hostname (3.4.0.2)
    baresql (0.7.2)
    bcolz (0.11.4)
    beautifulsoup4 (4.4.1)
    blaze (0.8.3)
    blosc (1.2.8)
    bloscpack (0.9.0)
    bokeh (0.10.0)
    Bottleneck (1.0.0)
    bqplot (0.3.10.dev0)
    brewer2mpl (1.4.1)
    castra (0.1.6)
    certifi (2015.9.6.1)
    cffi (1.2.1)
    click (5.0)
    colorama (0.3.3)
    configparser (3.5.0b2)
    cvxopt (1.1.7)
    cx-Freeze (4.3.4)
    cycler (0.9.0)
    cyordereddict (0.2.2)
    Cython (0.23.4)
    cytoolz (0.7.3)
    dask (0.7.3)
    datashape (0.4.7)
    db.py (0.4.4)
    decorator (4.0.4)
    dill (0.2.4)
    docopt (0.6.2)
    docutils (0.12)
    enum34 (1.0.4)
    Flask (0.10.1)
    formlayout (1.0.15)
    funcsigs (0.4)
    functools32 (3.2.3.post2)
    greenlet (0.4.9)
    guidata (1.7.0b5)
    guiqwt (3.0.0b6)
    h5py (2.5.0)
    holoviews (1.3.2)
    husl (4.0.3)
    ipykernel (4.1.1)
    ipyparallel (4.0.2)
    ipython (4.0.0)
    ipython-genutils (0.1.0)
    ipython-sql (0.3.7.1)
    ipywidgets (4.1.0)
    itsdangerous (0.24)
    jedi (0.8.1)
    Jinja2 (2.8)
    joblib (0.9.2)
    jsonschema (2.5.1)
    julia (0.1.1.8)
    jupyter (1.0.0)
    jupyter-client (4.1.1)
    jupyter-console (4.0.3)
    jupyter-core (4.0.6)
    Keras (0.2.0)
    llvmlite (0.6.0)
    lmfit (0.9.1)
    locket (0.2.0)
    logilab-common (1.1.0)
    lxml (3.4.4)
    Markdown (2.6.2)
    MarkupSafe (0.23)
    matplotlib (1.5.0rc2)
    mingwpy (0.1.0b3)
    mistune (0.7.1)
    mpld3 (0.2)
    multipledispatch (0.4.8)
    mysql-connector-python (2.0.4)
    nbconvert (4.0.0)
    nbformat (4.0.1)
    netCDF4 (1.2.1)
    networkx (1.10)
    nltk (3.0.5)
    nose (1.3.7)
    notebook (4.0.6)
    numba (0.20.0)
    numexpr (2.4.4)
    numpy (1.9.3)
    numpydoc (0.5)
    oct2py (3.3.3)
    odo (0.3.4)
    pandas (0.17.0)
    pandas-datareader (0.2.0)
    param (1.3.2)
    partd (0.3.2)
    path.py (8.1.2)
    patsy (0.4.0)
    pep8 (1.6.2)
    pg8000 (1.10.2)
    pickleshare (0.5)
    Pillow (3.0.0)
    pip (7.1.2)
    pkginfo (1.2.1)
    prettytable (0.7.2)
    psutil (3.2.2)
    PuLP (1.5.9)
    py (1.4.30)
    PyAudio (0.2.8)
    pybars3 (0.9.1)
    pycparser (2.14)
    pyflakes (0.9.2)
    Pygments (2.0.2)
    pyhdf (0.8.3)
    pylint (1.4.3)
    PyMeta3 (0.5.1)
    pymongo (3.0.3)
    pyodbc (3.0.10)
    PyOpenGL (3.1.0)
    pyparsing (2.0.3)
    PyQt4 (4.11.4)
    PyQtdesignerplugins (1.1)
    pyqtgraph (0.9.10)
    PyQwt (5.2.1)
    pyserial (2.7)
    pystache (0.5.4)
    pytest (2.8.2)
    python-dateutil (2.4.2)
    PythonQwt (0.3.0)
    pytz (2015.6)
    pywin32 (219)
    PyYAML (3.11)
    pyzmq (14.7.0)
    qtconsole (4.1.0)
    redis (2.10.3)
    reportlab (3.2.0)
    requests (2.8.1)
    requests-toolbelt (0.4.0)
    rope (0.10.2)
    rpy2 (2.7.2)
    Rx (1.2.3)
    scikit-image (0.11.3)
    scikit-learn (0.16.1)
    scilab2py (0.6)
    scipy (0.16.0)
    seaborn (0.7.0.dev0)
    setuptools (18.4)
    simplegeneric (0.8.1)
    simplejson (3.8.0)
    singledispatch (3.4.0.3)
    six (1.10.0)
    snowballstemmer (1.2.0)
    Sphinx (1.3.1)
    sphinx-rtd-theme (0.1.9)
    spyder (3.0.0.dev0)
    SQLAlchemy (1.0.8)
    sqlite-bro (0.8.10)
    sqlparse (0.1.16)
    statsmodels (0.6.1)
    sympy (0.7.6.1)
    tables (3.2.2)
    Theano (0.7.0)
    toolz (0.7.4)
    tornado (4.2.1)
    traitlets (4.0.0)
    twine (1.6.3)
    twitter (1.17.1)
    ViTables (2.1)
    Werkzeug (0.10.4)
    wheel (0.26.0)
    winpython (1.2)
    xlrd (0.9.4)
    XlsxWriter (0.7.6)
    xray (0.6.0)
    
    opened by stonebig 32
  • Display Selective Labels in the bqplot

    Display Selective Labels in the bqplot

    Hi, I was plotting a pie chart and would like to have only selected labels to be displayed in the pie chart. For example there is display_labels attribute in the Pie function but values for this is the [none, outside or inside].

    I only want selective labels (for example maximum of the pie and minimum of the pie)

    opened by saurabhheda 25
  • ScatterGL, a million scatter points using WebGL

    ScatterGL, a million scatter points using WebGL

    ~~This continues #630, not sure what the best strategy is, history wise etc.~~

    cc @astrofrog For https://github.com/glue-viz/glue-jupyter we need bqplot to handle larger scatter plots, say up to 100k-1M. This PR shows it is possible to do using WebGL (based on ipyvolume code), and I think a first good attempt. It doesn't support yet all features the Scatter mark has, for instance, only linear scales.

    The demo shows it runs pretty smooth, except that at 1 million, the non-binary serialization causes quite a lag. scattermega_example

    opened by maartenbreddels 25
  • Trouble with new ipywidgets?

    Trouble with new ipywidgets?

    Hi all,

    On OS X, if I make an environment with

    conda create -n py3.5 python=3.5 matplotlib bqplot numpy ipywidgets notebook jupyter -c conda-forge

    The standard pyplot examples produce no output. E.g.

    from bqplot import pyplot as plt import numpy as np

    plt.figure(1, title='Line Chart') np.random.seed(0) n = 200 x = np.linspace(0.0, 10.0, n) y = np.cumsum(np.random.randn(n)) plt.plot(x, y) plt.show()

    gives a control bar, but no actual plot.

    I have similar results with python 3.6 and a pip-installed bqplot.

    I'm running off for a minute, so here's everything in that conda environment:

    The following NEW packages will be INSTALLED:

    appnope:            0.1.0-py35_0                  conda-forge
    blas:               1.1-openblas                  conda-forge
    bleach:             1.5.0-py35_0                  conda-forge
    bqplot:             0.8.4-py35_0                  conda-forge
    ca-certificates:    2017.1.23-0                   conda-forge
    certifi:            2017.1.23-py35_0              conda-forge
    cycler:             0.10.0-py35_0                 conda-forge
    decorator:          4.0.11-py35_0                 conda-forge
    entrypoints:        0.2.2-py35_1                  conda-forge
    freetype:           2.7-1                         conda-forge
    html5lib:           0.999-py35_0                             
    icu:                54.1-0                                   
    ipykernel:          4.5.2-py35_0                  conda-forge
    ipython:            5.3.0-py35_0                  conda-forge
    ipython_genutils:   0.1.0-py35_0                  conda-forge
    ipywidgets:         6.0.0-py35_0                  conda-forge
    jinja2:             2.9.5-py35_0                  conda-forge
    jsonschema:         2.5.1-py35_0                  conda-forge
    jupyter:            1.0.0-py35_0                  conda-forge
    jupyter_client:     5.0.0-py35_0                  conda-forge
    jupyter_console:    5.1.0-py35_0                  conda-forge
    jupyter_core:       4.3.0-py35_0                  conda-forge
    libgfortran:        3.0.0-0                       conda-forge
    libpng:             1.6.28-0                      conda-forge
    libsodium:          1.0.10-0                      conda-forge
    markupsafe:         0.23-py35_1                   conda-forge
    matplotlib:         2.0.0-np112py35_2             conda-forge
    mistune:            0.7.3-py35_1                  conda-forge
    nbconvert:          5.1.1-py35_0                  conda-forge
    nbformat:           4.2.0-py35_0                  conda-forge
    ncurses:            5.9-10                        conda-forge
    notebook:           4.4.1-py35_0                  conda-forge
    numpy:              1.12.0-py35_blas_openblas_200 conda-forge [blas_openblas]
    openblas:           0.2.19-1                      conda-forge
    openssl:            1.0.2h-3                      conda-forge
    pandas:             0.19.2-np112py35_1            conda-forge
    pandoc:             1.19.2-0                      conda-forge
    pandocfilters:      1.4.1-py35_0                  conda-forge
    pexpect:            4.2.1-py35_0                  conda-forge
    pickleshare:        0.7.3-py35_0                  conda-forge
    pip:                9.0.1-py35_0                  conda-forge
    prompt_toolkit:     1.0.13-py35_0                 conda-forge
    ptyprocess:         0.5.1-py35_0                  conda-forge
    pygments:           2.2.0-py35_0                  conda-forge
    pyparsing:          2.1.10-py35_0                 conda-forge
    pyqt:               5.6.0-py35_2                             
    python:             3.5.3-1                       conda-forge
    python-dateutil:    2.6.0-py35_0                  conda-forge
    pytz:               2016.10-py35_0                conda-forge
    pyzmq:              16.0.2-py35_1                 conda-forge
    qt:                 5.6.2-0                                  
    qtconsole:          4.2.1-py35_0                  conda-forge
    readline:           6.2-0                         conda-forge
    setuptools:         33.1.0-py35_0                 conda-forge
    simplegeneric:      0.8.1-py35_0                  conda-forge
    sip:                4.18-py35_1                   conda-forge
    six:                1.10.0-py35_1                 conda-forge
    sqlite:             3.13.0-1                      conda-forge
    terminado:          0.6-py35_0                    conda-forge
    testpath:           0.3-py35_0                    conda-forge
    tk:                 8.5.19-1                      conda-forge
    tornado:            4.4.2-py35_0                  conda-forge
    traitlets:          4.3.1-py35_0                  conda-forge
    traittypes:         0.0.6-py35_0                  conda-forge
    wcwidth:            0.1.7-py35_0                  conda-forge
    wheel:              0.29.0-py35_0                 conda-forge
    widgetsnbextension: 2.0.0-py35_0                  conda-forge
    xz:                 5.2.2-0                       conda-forge
    zeromq:             4.2.1-1                       conda-forge
    zlib:               1.2.11-0                      conda-forge
    
    opened by mglerner 24
  • Fix WebGL plotting in Jupyter Lab

    Fix WebGL plotting in Jupyter Lab

    This declares raw-loader as a runtime dependency since it is needed to load some of the shader code (specifically for the scales).

    If we don't specify this, we are dependent on the default versions of raw-loader in notebook and lab which might be different - in particular, recent versions of raw-loader used by Jupyter Lab don't return a string when used with require() but instead return an object with a 'default' property, which causes issues in three.js.

    Fixes https://github.com/bloomberg/bqplot/issues/858

    opened by astrofrog 21
  • 0.10 release

    0.10 release

    What issues need to be resolved before a 0.10 release compatible with ipywidgets 7?

    CC @dmadeka, @ssunkara1, @SylvainCorlay.

    Also CC @stonebig, who I think is interested in a release soon.

    opened by jasongrout 20
  • wheel package format

    wheel package format

    It would be wonderfull to have this:

    • available as a wheel package,
    • with the python -m bqplot.install --user functionality triggered automatically when you detect the ".js" stuff is not in the right place.
    Enhancement 
    opened by stonebig 20
  • fix: line label invisible in dark theme

    fix: line label invisible in dark theme

    To reproduce:

    from bqplot import *
    
    
    x = LinearScale()
    y = LinearScale()
    
    line = Lines(x=[0], 
                 y=[0],
                 scales={'x': x, 'y': y},
                 labels=['My label'],
                 labels_visibility='label')
    ax_x = Axis(scale=x, label='X')
    ax_y = Axis(scale=y, label='Y', orientation='vertical')
    
    Figure(marks=[line], axes=[ax_x, ax_y])
    

    Light | Dark :-------------------------:|:-------------------------: Screenshot 2022-02-09 at 14 51 25|Screenshot 2022-02-09 at 14 51 39

    With this PR:

    Screenshot 2022-02-09 at 15 19 58
    opened by mariobuikhuizen 19
  • 0.12.3 release

    0.12.3 release

    This issue is meant to track the progress towards 0.12.3

    • merge / review "OHLC Selection" by @ibdafna #990
    • merge / review "avoid calling relayout too often" by @maartenbreddels #993
    opened by SylvainCorlay 18
  • README example does not work

    README example does not work

    I installed bqplot via conda-forge into my Python 3.6 environment (on macOS 10.12.5)

    See attached screenshot for what happened when I run the example from the README. screenshot 2017-07-19 17 28 23

    opened by michaelaye 18
  • Moved animate_dur attribute from marks to figure

    Moved animate_dur attribute from marks to figure

    1. Moved animate_dur attribute from marks to figure. Since figure contains axis and multiple marks it makes sense for all of them to transition together.
    2. Updated the example notebooks to reflect the above change
    3. Fixed couple of bugs in Pie mark
    4. Added a custom tween for Pie transitions

    Note: Axis gridlines and ticks should also transition when individual marks transition. I am working on it and will create a separate PR for that.

    Enhancement 
    opened by ChakriCherukuri 18
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /js

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /js

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump qs from 6.10.1 to 6.11.0 in /ui-tests

    Bump qs from 6.10.1 to 6.11.0 in /ui-tests

    Bumps qs from 6.10.1 to 6.11.0.

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape
    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • 0.12.36: sphinx warnings `reference target not found`

    0.12.36: sphinx warnings `reference target not found`

    First of all currently it wrong path to module source tree. This can be fixed by patch

    --- a/docs/source/conf.py
    +++ b/docs/source/conf.py
    @@ -24,7 +24,7 @@
     # If extensions (or modules to document with autodoc) are in another directory,
     # add these directories to sys.path here. If the directory is relative to the
     # documentation root, use os.path.abspath to make it absolute, like shown here.
    -sys.path.insert(0, os.path.abspath('../../bqplot/'))
    +sys.path.insert(0, os.path.abspath("../.."))
    
     # We load the bqplot release info into a dict by explicit execution
     _release = {}
    

    This patch fixes what is in the comment and that can of fix is suggested in sphinx example copy.py https://www.sphinx-doc.org/en/master/usage/configuration.html#example-of-configuration-file

    Than .. on building my packages I'm using sphinx-build command with -n switch which shows warmings about missing references. These are not critical issues.

    + /usr/bin/sphinx-build -n -T -b man docs/source build/sphinx/man
    Running Sphinx v5.3.0
    WARNING: Invalid configuration value found: 'language = None'. Update your configuration to a valid language code. Falling back to 'en' (English).
    making output directory... done
    [autosummary] generating autosummary for: api_documentation.rst, index.rst, introduction.rst, usage.rst
    Failed to import bqscales.scales.
    Possible hints:
    * KeyError: 'bqscales'
    * ModuleNotFoundError: No module named 'bqscales'
    [autosummary] generating autosummary for: /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.axes.Axis.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.axes.ColorAxis.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.figure.Figure.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.interacts.BrushIntervalSelector.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.interacts.BrushSelector.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.interacts.FastIntervalSelector.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.interacts.HandDraw.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.interacts.IndexSelector.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.interacts.Interaction.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.interacts.MultiSelector.rst, ..., /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.pyplot.plot.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.pyplot.scales.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.pyplot.scatter.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.pyplot.show.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.pyplot.xlabel.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.pyplot.xlim.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.pyplot.ylabel.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.pyplot.ylim.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.toolbar.Toolbar.rst, /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/docs/source/_generate/bqplot.traits.Date.rst
    building [mo]: targets for 0 po files that are out of date
    building [man]: all manpages
    updating environment: [new config] 51 added, 0 changed, 0 removed
    executing api_documentationpi_documentation
    executing usage... [100%] usage
    
    WARNING: autodoc: failed to import module 'scales' from module 'bqscales'; the following exception was raised:
    No module named 'bqscales'
    looking for now-outdated files... none found
    pickling environment... done
    checking consistency... done
    writing... python-bqplot.3 { introduction usage api_documentation _generate/bqplot.figure.Figure _generate/bqplot.marks.Mark _generate/bqplot.marks.Lines _generate/bqplot.marks.FlexLine _generate/bqplot.marks.Scatter _generate/bqplot.marks.Hist _generate/bqplot.marks.Bars _generate/bqplot.marks.Graph _generate/bqplot.marks.GridHeatMap _generate/bqplot.marks.HeatMap _generate/bqplot.marks.Label _generate/bqplot.marks.OHLC _generate/bqplot.marks.Pie _generate/bqplot.marks.Map _generate/bqplot.axes.Axis _generate/bqplot.axes.ColorAxis _generate/bqplot.market_map.MarketMap _generate/bqplot.interacts.BrushIntervalSelector _generate/bqplot.interacts.BrushSelector _generate/bqplot.interacts.HandDraw _generate/bqplot.interacts.IndexSelector _generate/bqplot.interacts.FastIntervalSelector _generate/bqplot.interacts.MultiSelector _generate/bqplot.interacts.OneDSelector _generate/bqplot.interacts.Interaction _generate/bqplot.interacts.PanZoom _generate/bqplot.interacts.Selector _generate/bqplot.interacts.TwoDSelector _generate/bqplot.traits.Date _generate/bqplot.toolbar.Toolbar _generate/bqplot.pyplot.figure _generate/bqplot.pyplot.show _generate/bqplot.pyplot.axes _generate/bqplot.pyplot.plot _generate/bqplot.pyplot.scatter _generate/bqplot.pyplot.hist _generate/bqplot.pyplot.bar _generate/bqplot.pyplot.ohlc _generate/bqplot.pyplot.geo _generate/bqplot.pyplot.clear _generate/bqplot.pyplot.close _generate/bqplot.pyplot.current_figure _generate/bqplot.pyplot.scales _generate/bqplot.pyplot.xlim _generate/bqplot.pyplot.ylim _generate/bqplot.pyplot.xlabel _generate/bqplot.pyplot.ylabel } /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:14: WARNING: py:class reference target not found: string
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:14: WARNING: py:class reference target not found: default: ''
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:20: WARNING: py:class reference target not found: Axes
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:20: WARNING: py:class reference target not found: default:
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:26: WARNING: py:class reference target not found: Marks
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:26: WARNING: py:class reference target not found: default:
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:32: WARNING: py:class reference target not found: default: None
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:38: WARNING: py:class reference target not found: Scale
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/figure.py:docstring of bqplot.figure.Figure:44: WARNING: py:class reference target not found: Scale
    
    [.very long list of warnings.]
    
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.geo:1: WARNING: py:class reference target not found: default: {}
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.close:1: WARNING: py:class reference target not found: hashable
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.scales:: WARNING: py:class reference target not found: hashable
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.scales:: WARNING: py:class reference target not found: optional
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.scales:: WARNING: py:class reference target not found: dictionary
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.xlabel:1: WARNING: py:class reference target not found: Unicode
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.xlabel:1: WARNING: py:class reference target not found: default: None
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.ylabel:1: WARNING: py:class reference target not found: Unicode
    /home/tkloczko/rpmbuild/BUILD/bqplot-0.12.36/bqplot/pyplot.py:docstring of bqplot.pyplot.ylabel:1: WARNING: py:class reference target not found: default: None
    done
    build succeeded, 2106 warnings.
    

    You can peak on fixes that kind of issues in other projects https://github.com/latchset/jwcrypto/pull/289 https://github.com/click-contrib/sphinx-click/commit/abc31069 https://github.com/latchset/jwcrypto/pull/289 https://github.com/RDFLib/rdflib-sqlalchemy/issues/95 https://github.com/sissaschool/elementpath/commit/bf869d9e https://github.com/jaraco/cssutils/issues/21 https://github.com/pywbem/pywbem/pull/2895 https://github.com/sissaschool/xmlschema/commit/42ea98f2 https://github.com/RDFLib/rdflib/pull/2036 https://github.com/frostming/unearth/issues/14 https://github.com/pypa/distlib/commit/98b9b89f

    opened by kloczek 0
  • fix: axis formatting depended on initial values or changes

    fix: axis formatting depended on initial values or changes

    The codepath to to axis formatting for the initial values was different from when properties such as tick_values are updated afterwards. This was probably due to some technical debt/circular dependency in the code. If did the minimal amount of change to make sure the behaviour is the same, while having a consistent codepath.

    Fixes #1536

    opened by maartenbreddels 0
  • fix: figure is not updating when margins change

    fix: figure is not updating when margins change

    References

    Code changes

    Extend bypass relayout logic to include margins

    User-facing changes

    Changing margins results in an updated figure

    To reproduce:

    import numpy as np
    import bqplot.pyplot as plt
    
    size = 100
    scale = 100.0
    np.random.seed(0)
    x_data = np.arange(size)
    y_data = np.cumsum(np.random.randn(size) * scale)
    
    fig = plt.figure()
    plt.plot(y_data)
    fig
    
    fig.fig_margin = {'top': 0, 'bottom': 0, 'left': 30, 'right': 0}
    
    opened by mariobuikhuizen 6
Releases(0.12.36)
  • 0.12.36(Sep 2, 2022)

    Bug fix

    • Fix luminowidget error for ipywidgets 7 by @martinRenou in https://github.com/bqplot/bqplot/pull/1523

    Full Changelog: https://github.com/bqplot/bqplot/compare/0.12.35...0.12.36

    Source code(tar.gz)
    Source code(zip)
  • 0.12.35(Sep 2, 2022)

    Bug fixes

    • Exclude tests top-level package, add some JupyterLab trove classifiers by @meeseeksmachine in https://github.com/bqplot/bqplot/pull/1518
    • Fix processPhosphorMessage for ipywidgets 7 by @meeseeksmachine in https://github.com/bqplot/bqplot/pull/1522

    Full Changelog: https://github.com/bqplot/bqplot/compare/0.12.34...0.12.35

    Source code(tar.gz)
    Source code(zip)
  • 0.12.34(Aug 22, 2022)

    What's Changed

    • ipywidgets 8 support by @martinRenou in https://github.com/bqplot/bqplot/pull/1517

    Full Changelog: https://github.com/bqplot/bqplot/compare/0.12.33...0.12.34

    Source code(tar.gz)
    Source code(zip)
  • 0.12.33(Aug 22, 2022)

    What's Changed

    Bug fixes

    • fix: line label invisible in dark theme by @meeseeksmachine in https://github.com/bqplot/bqplot/pull/1472
    • Add default color CSS selectors to node text by @meeseeksmachine in https://github.com/bqplot/bqplot/pull/1473

    Maintainance

    • Fix CI by @martinRenou in https://github.com/bqplot/bqplot/pull/1470
    • Update Galata by @martinRenou in https://github.com/bqplot/bqplot/pull/1469
    • Add bot for updating Galata tests automatically by @martinRenou in https://github.com/bqplot/bqplot/pull/1471

    Full Changelog: https://github.com/bqplot/bqplot/compare/0.12.32...0.12.33

    Source code(tar.gz)
    Source code(zip)
  • 0.12.32(Jan 7, 2022)

    What's Changed

    • Backport PR #1413 on branch 0.12.x (Fix codespell) by @meeseeksmachine in https://github.com/bqplot/bqplot/pull/1425
    • feat: log scale support for ScatterGL Mark by @maartenbreddels in https://github.com/bqplot/bqplot/pull/1424
    • Backport PR #1426 on branch 0.12.x (Fix index selector jumping back to 0) by @meeseeksmachine in https://github.com/bqplot/bqplot/pull/1427
    • Backport PR #1428 on branch 0.12.x (Use jupyter-sphinx instead of nbsphinx) by @meeseeksmachine in https://github.com/bqplot/bqplot/pull/1431
    • Backport PR #1429 on branch 0.12.x (Make docs executable) by @meeseeksmachine in https://github.com/bqplot/bqplot/pull/1432

    Full Changelog: https://github.com/bqplot/bqplot/compare/0.12.31...0.12.32

    Source code(tar.gz)
    Source code(zip)
  • 0.12.30(Jul 16, 2021)

  • 0.12.21(Jan 14, 2021)

  • 0.12.18(Oct 12, 2020)

  • 0.12.17(Sep 10, 2020)

Mapomatic - Automatic mapping of compiled circuits to low-noise sub-graphs

mapomatic Automatic mapping of compiled circuits to low-noise sub-graphs Overvie

Qiskit Partners 27 Nov 06, 2022
Here are my graphs for hw_02

Let's Have A Look At Some Graphs! Graph 1: State Mentions in Congressperson's Tweets on 10/01/2017 The graph below uses this data set to demonstrate h

7 Sep 02, 2022
It's an application to calculate I from v and r. It can also plot a graph between V vs I.

Ohm-s-Law-Visualizer It's an application to calculate I from v and r using Ohm's Law. It can also plot a graph between V vs I. Story I'm doing my Unde

Sihab Sahariar 1 Nov 20, 2021
a simple REPL display lib for circuitpython

Circuitpython-termio-lib a simple REPL display lib for circuitpython Fonctions cls clear terminal screen and set cursor on top left : coords 0,0 usage

BeBoXoS 1 Nov 17, 2021
哔咔漫画window客户端,界面使用PySide2,已实现分类、搜索、收藏夹、下载、在线观看、waifu2x等功能。

picacomic-windows 哔咔漫画window客户端,界面使用PySide2,已实现分类、搜索、收藏夹、下载、在线观看等功能。 功能介绍 登陆分流,还原安卓端的三个分流入口 分类,搜索,排行,收藏夹使用同一的逻辑,滚轮下滑自动加载下一页,双击打开 漫画详情,章节列表和评论列表 下载功能,目

1.8k Dec 31, 2022
Curvipy - The Python package for visualizing curves and linear transformations in a super simple way

Curvipy - The Python package for visualizing curves and linear transformations in a super simple way

Dylan Tintenfich 55 Dec 28, 2022
script to generate HeN ipfs app exports of GLSL shaders

HeNerator A simple script to generate HeN ipfs app exports from any frag shader created with: GlslViewer GlslEditor The Book of Shaders glslCanvas VS

Patricio Gonzalez Vivo 22 Dec 21, 2022
Visualise Ansible execution time across playbooks, tasks, and hosts.

ansible-trace Visualise where time is spent in your Ansible playbooks: what tasks, and what hosts, so you can find where to optimise and decrease play

Mark Hansen 81 Dec 15, 2022
A streamlit component for bi-directional communication with bokeh plots.

Streamlit Bokeh Events A streamlit component for bi-directional communication with bokeh plots. Its just a workaround till streamlit team releases sup

Ashish Shukla 123 Dec 25, 2022
simple tool to paint axis x and y

simple tool to paint axis x and y

G705 1 Oct 21, 2021
Make scripted visualizations in blender

Scripted visualizations in blender The goal of this project is to script 3D scientific visualizations using blender. To achieve this, we aim to bring

Praneeth Namburi 10 Jun 01, 2022
Graphical display tools, to help students debug their class implementations in the Carcassonne family of projects

carcassonne_tools Graphical display tools, to help students debug their class implementations in the Carcassonne family of projects NOTE NOTE NOTE The

1 Nov 08, 2021
Python Data Validation for Humans™.

validators Python data validation for Humans. Python has all kinds of data validation tools, but every one of them seems to require defining a schema

Konsta Vesterinen 670 Jan 09, 2023
nvitop, an interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management

An interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management.

Xuehai Pan 1.3k Jan 02, 2023
A python-generated website for visualizing the novel coronavirus (COVID-19) data for Greece.

COVID-19-Greece A python-generated website for visualizing the novel coronavirus (COVID-19) data for Greece. Data sources Data provided by Johns Hopki

Isabelle Viktoria Maciohsek 23 Jan 03, 2023
A Simple Flask-Plotly Example for NTU 110-1 DSSI Class

A Simple Flask-Plotly Example for NTU 110-1 DSSI Class Live Demo Prerequisites We will use Flask and Ploty to build a Flask application. If you haven'

Ting Ni Wu 1 Dec 11, 2021
Gaphas is the diagramming widget library for Python.

Gaphas Gaphas is the diagramming widget library for Python. Gaphas is a library that provides the user interface component (widget) for drawing diagra

Gaphor 144 Dec 14, 2022
Lime: Explaining the predictions of any machine learning classifier

lime This project is about explaining what machine learning classifiers (or models) are doing. At the moment, we support explaining individual predict

Marco Tulio Correia Ribeiro 10.3k Dec 29, 2022
A simple, fast, extensible python library for data validation.

Validr A simple, fast, extensible python library for data validation. Simple and readable schema 10X faster than jsonschema, 40X faster than schematic

kk 209 Sep 19, 2022
Visualization ideas for data science

Nuance I use Nuance to curate varied visualization thoughts during my data scientist career. It is not yet a package but a list of small ideas. Welcom

Li Jiangchun 16 Nov 03, 2022