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)

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
A simple script that displays pixel-based animation on GitHub Activity

GitHub Activity Animator This project contains a simple Javascript snippet that produces an animation on your GitHub activity tracker. The project als

16 Nov 15, 2021
VDLdraw - Batch plot the log files exported from VisualDL using Matplotlib

VDLdraw Batch plot the log files exported from VisualDL using Matplotlib. At pre

Yizhou Chen 5 Sep 26, 2022
Epagneul is a tool to visualize and investigate windows event logs

epagneul Epagneul is a tool to visualize and investigate windows event logs. Dep

jurelou 190 Dec 13, 2022
A collection of 100 Deep Learning images and visualizations

A collection of Deep Learning images and visualizations. The project has been developed by the AI Summer team and currently contains almost 100 images.

AI Summer 65 Sep 12, 2022
Because trello only have payed options to generate a RunUp chart, this solves that!

Trello Runup Chart Generator The basic concept of the project is that Corello is pay-to-use and want to use Trello To-Do/Doing/Done automation with gi

Rômulo Schiavon 1 Dec 21, 2021
An interactive UMAP visualization of the MNIST data set.

Code for an interactive UMAP visualization of the MNIST data set. Demo at https://grantcuster.github.io/umap-explorer/. You can read more about the de

grant 70 Dec 27, 2022
Active Transport Analytics Model (ATAM) is a new strategic transport modelling and data visualization framework for Active Transport as well as emerging micro-mobility modes

{ATAM} Active Transport Analytics Model Active Transport Analytics Model (“ATAM”) is a new strategic transport modelling and data visualization framew

Peter Stephan 0 Jan 12, 2022
Colormaps for astronomers

cmastro: colormaps for astronomers 🔭 This package contains custom colormaps that have been used in various astronomical applications, similar to cmoc

Adrian Price-Whelan 12 Oct 11, 2022
A high-level plotting API for pandas, dask, xarray, and networkx built on HoloViews

hvPlot A high-level plotting API for the PyData ecosystem built on HoloViews. Build Status Coverage Latest dev release Latest release Docs What is it?

HoloViz 697 Jan 06, 2023
Streamlit dashboard examples - Twitter cashtags, StockTwits, WSB, Charts, SQL Pattern Scanner

streamlit-dashboards Streamlit dashboard examples - Twitter cashtags, StockTwits, WSB, Charts, SQL Pattern Scanner Tutorial Video https://ww

122 Dec 21, 2022
Data science project for exploratory analysis on the kcse grades dataset (Kamilimu Data Science Track)

Kcse-Data-Analysis Data science project for exploratory analysis on the kcse grades dataset (Kamilimu Data Science Track) Findings The performance of

MUGO BRIAN 1 Feb 23, 2022
Learn Data Science with focus on adding value with the most efficient tech stack.

DataScienceWithPython Get started with Data Science with Python An engaging journey to become a Data Scientist with Python TL;DR Download all Jupyter

Learn Python with Rune 110 Dec 22, 2022
Show Data: Show your dataset in web browser!

Show Data is to generate html tables for large scale image dataset, especially for the dataset in remote server. It provides some useful commond line tools and fully customizeble API reference to gen

Dechao Meng 83 Nov 26, 2022
Visualizations of linear algebra algorithms for people who want a deep understanding

Visualising algorithms on symmetric matrices Examples QR algorithm and LR algorithm Here, we have a GIF animation of an interactive visualisation of t

ogogmad 3 May 05, 2022
Import, visualize, and analyze SpiderFoot OSINT data in Neo4j, a graph database

SpiderFoot Neo4j Tools Import, visualize, and analyze SpiderFoot OSINT data in Neo4j, a graph database Step 1: Installation NOTE: This installs the sf

Black Lantern Security 42 Dec 26, 2022
Time series visualizer is a flexible extension that provides filling world map by country from real data.

Time-series-visualizer Time series visualizer is a flexible extension that provides filling world map by country from csv or json file. You can know d

Long Ng 3 Jul 09, 2021
Moscow DEG 2021 elections plots

Построение графиков на основе публичных данных о ДЭГ в Москве в 2021г. Описание Скрипты в данном репозитории позволяют собственноручно построить графи

9 Jul 15, 2022
An animation engine for explanatory math videos

Powered By: An animation engine for explanatory math videos Hi there, I'm Zheer 👋 I'm a Software Engineer and student!! 🌱 I’m currently learning eve

Zaheer ud Din Faiz 2 Nov 04, 2021
A customized interface for single cell track visualisation based on pcnaDeep and napari.

pcnaDeep-napari A customized interface for single cell track visualisation based on pcnaDeep and napari. 👀 Under construction You can get test image

ChanLab 2 Nov 07, 2021