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)

ecoglib: visualization and statistics for high density microecog signals

ecoglib: visualization and statistics for high density microecog signals This library contains high-level analysis tools for "topos" and "chronos" asp

1 Nov 17, 2021
The interactive graphing library for Python (includes Plotly Express) :sparkles:

plotly.py Latest Release User forum PyPI Downloads License Data Science Workspaces Our recommended IDE for Plotly’s Python graphing library is Dash En

Plotly 12.7k Jan 05, 2023
股票行情实时数据接口-A股,完全免费的沪深证券股票数据-中国股市,python最简封装的API接口

股票行情实时数据接口-A股,完全免费的沪深证券股票数据-中国股市,python最简封装的API接口,包含日线,历史K线,分时线,分钟线,全部实时采集,系统包括新浪腾讯双数据核心采集获取,自动故障切换,STOCK数据格式成DataFrame格式,可用来查询研究量化分析,股票程序自动化交易系统.为量化研究者在数据获取方面极大地减轻工作量,更加专注于策略和模型的研究与实现。

dev 572 Jan 08, 2023
阴阳师后台全平台(使用网易 MuMu 模拟器)辅助。支持御魂,觉醒,御灵,结界突破,秘闻副本,地域鬼王。

阴阳师后台全平台辅助 Python 版本:Python 3.8.3 模拟器:网易 MuMu | 雷电模拟器 模拟器分辨率:1024*576 显卡渲染模式:兼容(OpenGL) 兼容 Windows 系统和 MacOS 系统 思路: 利用 adb 截图后,使用 opencv 找图找色,模拟点击。使用

简讯 27 Jul 09, 2022
Write python locally, execute SQL in your data warehouse

RasgoQL Write python locally, execute SQL in your data warehouse ≪ Read the Docs · Join Our Slack » RasgoQL is a Python package that enables you to ea

Rasgo 265 Nov 21, 2022
Plotting data from the landroid and a raspberry pi zero to a influx-db

landroid-pi-influx Plotting data from the landroid and a raspberry pi zero to a influx-db Dependancies Hardware: Landroid WR130E Raspberry Pi Zero Wif

2 Oct 22, 2021
This is a place where I'm playing around with pandas to analyze data in a csv/excel file.

pandas-csv-excel-analysis This is a place where I'm playing around with pandas to analyze data in a csv/excel file. 0-start A very simple cheat sheet

Chuqin 3 Oct 05, 2022
Investment and risk technologies maintained by Fortitudo Technologies.

Fortitudo Technologies Open Source This package allows you to freely explore open-source implementations of some of our fundamental technologies under

Fortitudo Technologies 11 Dec 14, 2022
Quickly and accurately render even the largest data.

Turn even the largest data into images, accurately Build Status Coverage Latest dev release Latest release Docs Support What is it? Datashader is a da

HoloViz 2.9k Dec 28, 2022
Easily configurable, chart dashboards from any arbitrary API endpoint. JSON config only

Flask JSONDash Easily configurable, chart dashboards from any arbitrary API endpoint. JSON config only. Ready to go. This project is a flask blueprint

Chris Tabor 3.3k Dec 31, 2022
100 data puzzles for pandas, ranging from short and simple to super tricky (60% complete)

100 pandas puzzles Puzzles notebook Solutions notebook Inspired by 100 Numpy exerises, here are 100* short puzzles for testing your knowledge of panda

Alex Riley 1.9k Jan 08, 2023
This is a Boids Simulation, written in Python with Pygame.

PyNBoids A Python Boids Simulation This is a Boids simulation, written in Python3, with Pygame2 and NumPy. To use: Save the pynboids_sp.py file (and n

Nik 17 Dec 18, 2022
Streaming pivot visualization via WebAssembly

Perspective is an interactive visualization component for large, real-time datasets. Originally developed for J.P. Morgan's trading business, Perspect

The Fintech Open Source Foundation (www.finos.org) 5.1k Dec 27, 2022
Mattia Ficarelli 2 Mar 29, 2022
A napari plugin for visualising and interacting with electron cryotomograms.

napari-tomoslice A napari plugin for visualising and interacting with electron cryotomograms. Installation You can install napari-tomoslice via pip: p

3 Jan 03, 2023
A declarative (epi)genomics visualization library for Python

gos is a declarative (epi)genomics visualization library for Python. It is built on top of the Gosling JSON specification, providing a simplified interface for authoring interactive genomic visualiza

Gosling 107 Dec 14, 2022
An interactive GUI for WhiteboxTools in a Jupyter-based environment

whiteboxgui An interactive GUI for WhiteboxTools in a Jupyter-based environment GitHub repo: https://github.com/giswqs/whiteboxgui Documentation: http

Qiusheng Wu 105 Dec 15, 2022
Altair extension for saving charts in a variety of formats.

Altair Saver This packge provides extensions to Altair for saving charts to a variety of output types. Supported output formats are: .json/.vl.json: V

Altair 85 Dec 09, 2022
DataVisualization - The evolution of my arduino and python journey. New level of competence achieved

DataVisualization - The evolution of my arduino and python journey. New level of competence achieved

1 Jan 03, 2022
Rick and Morty Data Visualization with python

Rick and Morty Data Visualization For this project I looked at data for the TV show Rick and Morty Number of Episodes at a Certain Location Here is th

7 Aug 29, 2022