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)

Data Visualization Guide for Presentations, Reports, and Dashboards

This is a highly practical and example-based guide on visually representing data in reports and dashboards.

Anton Zhiyanov 395 Dec 29, 2022
Python script for writing text on github contribution chart.

Github Contribution Drawer Python script for writing text on github contribution chart. Requirements Python 3.X Getting Started Create repository Put

Steven 0 May 27, 2022
Graphical visualizer for spectralyze by Lauchmelder23

spectralyze visualizer Graphical visualizer for spectralyze by Lauchmelder23 Install Install matplotlib and ffmpeg. Put ffmpeg.exe in same folder as v

Matthew 1 Dec 21, 2021
Missing data visualization module for Python.

missingno Messy datasets? Missing values? missingno provides a small toolset of flexible and easy-to-use missing data visualizations and utilities tha

Aleksey Bilogur 3.4k Dec 29, 2022
paintable GitHub contribute table

githeart paintable github contribute table how to use: Functions key color select 1,2,3,4,5 clear c drawing mode mode on turn off e print paint matrix

Bahadır Araz 27 Nov 24, 2022
Jupyter Notebook extension leveraging pandas DataFrames by integrating DataTables and ChartJS.

Jupyter DataTables Jupyter Notebook extension to leverage pandas DataFrames by integrating DataTables JS. About Data scientists and in fact many devel

Marek Čermák 142 Dec 28, 2022
Practical-statistics-for-data-scientists - Code repository for O'Reilly book

Code repository Practical Statistics for Data Scientists: 50+ Essential Concepts Using R and Python by Peter Bruce, Andrew Bruce, and Peter Gedeck Pub

1.7k Jan 04, 2023
CPG represent!

CoolPandasGroup CPG represent! Arianna Brandon Enne Luan Tracie Project requirements: use Pandas to clean and format datasets use Jupyter Notebook to

Enne 3 Feb 07, 2022
A small collection of tools made by me, that you can use to visualize atomic orbitals in both 2D and 3D in different aspects.

Orbitals in Python A small collection of tools made by me, that you can use to visualize atomic orbitals in both 2D and 3D in different aspects, and o

Prakrisht Dahiya 1 Nov 25, 2021
Python package to Create, Read, Write, Edit, and Visualize GSFLOW models

pygsflow pyGSFLOW is a python package to Create, Read, Write, Edit, and Visualize GSFLOW models API Documentation pyGSFLOW API documentation can be fo

pyGSFLOW 21 Dec 14, 2022
Python scripts to manage Chia plots and drive space, providing full reports. Also monitors the number of chia coins you have.

Chia Plot, Drive Manager & Coin Monitor (V0.5 - April 20th, 2021) Multi Server Chia Plot and Drive Management Solution Be sure to ⭐ my repo so you can

338 Nov 25, 2022
Create matplotlib visualizations from the command-line

MatplotCLI Create matplotlib visualizations from the command-line MatplotCLI is a simple utility to quickly create plots from the command-line, levera

Daniel Moura 46 Dec 16, 2022
Data Visualizer Web-Application

Viz-It Data Visualizer Web-Application If I ask you where most of the data wrangler looses their time ? It is Data Overview and EDA. Presenting "Viz-I

Sagnik Roy 17 Nov 20, 2022
`charts.css.py` brings `charts.css` to Python. Online documentation and samples is available at the link below.

charts.css.py charts.css.py provides a python API to convert your 2-dimension data lists into html snippet, which will be rendered into charts by CSS,

Ray Luo 3 Sep 23, 2021
An interactive dashboard built with python that enables you to visualise how rent prices differ across Sweden.

sweden-rent-dashboard An interactive dashboard built with python that enables you to visualise how rent prices differ across Sweden. The dashboard/web

Rory Crean 5 Dec 19, 2021
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
View part of your screen in grayscale or simulated color vision deficiency.

monolens View part of your screen in grayscale or filtered to simulate color vision deficiency. Watch the demo on YouTube. Install with pip install mo

Hans Dembinski 31 Oct 11, 2022
Browse Dash docsets inside emacs

Helm Dash What's it This package uses Dash docsets inside emacs to browse documentation. Here's an article explaining the basic usage of it. It doesn'

504 Dec 15, 2022
Visualizations of some specific solutions of different differential equations.

Diff_sims Visualizations of some specific solutions of different differential equations. Heat Equation in 1 Dimension (A very beautiful and elegant ex

2 Jan 13, 2022
A command line tool for visualizing CSV/spreadsheet-like data

PerfPlotter Read data from CSV files using pandas and generate interactive plots using bokeh, which can then be embedded into HTML pages and served by

Gino Mempin 0 Jun 25, 2022