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)

Library for exploring and validating machine learning data

TensorFlow Data Validation TensorFlow Data Validation (TFDV) is a library for exploring and validating machine learning data. It is designed to be hig

688 Jan 03, 2023
Some useful extensions for Matplotlib.

mplx Some useful extensions for Matplotlib. Contour plots for functions with discontinuities plt.contour mplx.contour(max_jump=1.0) Matplotlib has pro

Nico Schlömer 519 Dec 30, 2022
Automatically Visualize any dataset, any size with a single line of code. Created by Ram Seshadri. Collaborators Welcome. Permission Granted upon Request.

AutoViz Automatically Visualize any dataset, any size with a single line of code. AutoViz performs automatic visualization of any dataset with one lin

AutoViz and Auto_ViML 1k Jan 02, 2023
📊📈 Serves up Pandas dataframes via the Django REST Framework for use in client-side (i.e. d3.js) visualizations and offline analysis (e.g. Excel)

📊📈 Serves up Pandas dataframes via the Django REST Framework for use in client-side (i.e. d3.js) visualizations and offline analysis (e.g. Excel)

wq framework 1.2k Jan 01, 2023
Design your own matplotlib stylefile interactively

Tired of playing with font sizes and other matplotlib parameters every time you start a new project or write a new plotting function? Want all you plots have the same style? Use matplotlib configurat

yobi byte 207 Dec 08, 2022
Domain Connectivity Analysis Tools to analyze aggregate connectivity patterns across a set of domains during security investigations

DomainCAT (Domain Connectivity Analysis Tool) Domain Connectivity Analysis Tool is used to analyze aggregate connectivity patterns across a set of dom

DomainTools 34 Dec 09, 2022
simple tool to paint axis x and y

simple tool to paint axis x and y

G705 1 Oct 21, 2021
Comparing USD and GBP Exchange Rates

Currency Data Visualization Comparing USD and GBP Exchange Rates This is a bar graph comparing GBP and USD exchange rates. I chose blue for the UK bec

5 Oct 28, 2021
Debugging, monitoring and visualization for Python Machine Learning and Data Science

Welcome to TensorWatch TensorWatch is a debugging and visualization tool designed for data science, deep learning and reinforcement learning from Micr

Microsoft 3.3k Dec 27, 2022
Visualize the bitcoin blockchain from your local node

Project Overview A new feature in Bitcoin Core 0.20 allows users to dump the state of the blockchain (the UTXO set) using the command dumptxoutset. I'

18 Sep 11, 2022
GitHubPoster - Make everything a GitHub svg poster

GitHubPoster Make everything a GitHub svg poster 支持 Strava 开心词场 扇贝 Nintendo Switch GPX 多邻国 Issue

yihong 1.3k Jan 02, 2023
The official colors of the FAU as matplotlib/seaborn colormaps

FAU - Colors The official colors of Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) as matplotlib / seaborn colormaps. We support the old colo

Machine Learning and Data Analytics Lab FAU 9 Sep 05, 2022
Generate a roam research like Network Graph view from your Notion pages.

Notion Graph View Export Notion pages to a Roam Research like graph view.

Steve Sun 214 Jan 07, 2023
DrawBot lets you draw images taken from the internet on Skribbl.io, Gartic Phone and Paint

DrawBot You don't speak french? No worries, english translation is over here. C'est quoi ? DrawBot est un logiciel codé par V2F qui va prendre possess

V2F 205 Jan 01, 2023
Splore - a simple graphical interface for scrolling through and exploring data sets of molecules

Scroll through and exPLORE molecule sets The splore framework aims to offer a si

3 Jun 18, 2022
A python script editor for napari based on PyQode.

napari-script-editor A python script editor for napari based on PyQode. This napari plugin was generated with Cookiecutter using with @napari's cookie

Robert Haase 9 Sep 20, 2022
Simple addon for snapping active object to mesh ground

Snap to Ground Simple addon for snapping active object to mesh ground How to install: install the Python file as an addon use shortcut "D" in 3D view

Iyad Ahmed 12 Nov 07, 2022
Generate SVG (dark/light) images visualizing (private/public) GitHub repo statistics for profile/website.

Generate daily updated visualizations of GitHub user and repository statistics from the GitHub API using GitHub Actions for any combination of private and public repositories, whether owned or contri

Adam Ross 2 Dec 16, 2022
Implement the Perspective open source code in preparation for data visualization

Task Overview | Installation Instructions | Link to Module 2 Introduction Experience Technology at JP Morgan Chase Try out what real work is like in t

Abdulazeez Jimoh 1 Jan 23, 2022
Ana's Portfolio

Ana's Portfolio ✌️ Welcome to my Portfolio! You will find here different Projects I have worked on (from scratch) 💪 Projects 💻 1️⃣ Hangman game (Mad

Ana Katherine Cortes Sobrino 9 Mar 15, 2022