IPython/Jupyter notebook module for Vega and Vega-Lite

Overview

IPython Vega

PyPI Build Status

IPython/Jupyter notebook module for Vega 5, and Vega-Lite 4. Notebooks with embedded visualizations can be viewed on GitHub and nbviewer. If you use JupyterLab (not the notebook), you don't need to install this extension since JupyterLab comes with built-in support for Vega and Vega-Lite.

Available on pypi and Conda Forge as vega.

Install and run

Python Package Index

To install vega and its dependencies from the Python Package Index using pip, use the following commands:

pip install jupyter pandas vega
pip install --upgrade notebook  # need jupyter_client >= 4.2 for sys-prefix below
jupyter nbextension install --sys-prefix --py vega  # not needed in notebook >= 5.3

Conda Forge

If you use Conda, you probably already have the latest versions of the notebook and pandas installed. To install vega extension run:

conda install vega

Usage

Once the package is installed, run

jupyter notebook

to launch the Jupyter notebook server, and use vega within the notebook. See the example notebooks for Vega-Lite and Vega.

To run the notebooks yourself, you need to get the file cars.json.

Developers

This project uses Poetry. If you prefer a local virtual environment, run poetry config virtualenvs.in-project true first. Install requirements: poetry install.

Then activate the virtual environment with poetry shell.

Symlink files instead of copying files:

jupyter nbextension install --py --symlink vega

Run kernel with jupyter notebook. Run the tests with pytest vega.

To rebuild the JavaScript continuously, run yarn watch.

How to make a release

  • Update the JavaScript dependencies by changing package.json (e.g. with ncu).
  • Run yarn.
  • Rebuild the JavaScript with yarn build.
  • Make sure that everything still works (launch notebook and try the examples).
  • Update the version number in pyproject.toml (with poetry version [VERSION]), package.json, and __init__.py and add a git tag.
  • git push.
  • Then run poetry publish --build to update https://pypi.python.org/pypi/vega.

The Conda feedstock for this package is at https://github.com/conda-forge/vega-feedstock. It should update automatically but we may need to merge a pull request with the updates.

Comments
  • Use JavaScript output and save static PNG as well in the notebook

    Use JavaScript output and save static PNG as well in the notebook

    This is a work in progress...

    This PR changes how output is rendered in Jupyter notebooks. The goal here is get ipyvega to work in the following three contexts:

    • Live notebook as real JavaScript
    • Nbviewer as PNG (and eventally JavaScript)
    • GitHub as PNG

    This is accomplished by having a JavaScript output that works on the live notebook and having that JS also save a static PNG in the notebook output that will be used on GitHub and nbviewer.

    opened by ellisonbg 41
  • Implementation of ipython widget

    Implementation of ipython widget

    This is an update of the original PR (#94). After fighting a bit with webpack, I think I found a solution to use optional dependencies. For the weak dependencies on iypwidgets, the solution was to

    • add the webpack types to typescript
    • use resolveWeak to query at module definition time whether the ipywidgets javascript module is available
    • only if so, require the module and define the widget implementation

    The added example notebook demonstrates:

    • a standard vega plot
    • a vega widget with live updates
    • a vega widget embedded in a larger ipywidgets layout with additional interactivity

    I verified for the production build (yarn build) that the vega plot works with and without ipywidgets installed. The later two parts give an import error when ipywidgets is not installed.

    At the moment I am unhappy that Javascript errors are not translated back into python errors. For example, specifying the wrong name in update fails silently at the moment. My goal would be to have some kind of a lightweight exception translation mechanism to surface these errors to the user directly.


    For reference, the example of the vega widget with interactivity looks like:

    Example Vega Widget in Layout


    The original PR was:

    As discussed in #93, this PR contains an implementation for an IPython Vega widget. In addition to the existing display system, it allows

    to put altair charts in a larger UI with other widgets,
    to change the chart without re-displaying the widget, and
    to dynamically update the data via changesets.
    

    I struggled a bit with webpack to get it to only optionally define the widget component. Not sure whether my solution is idiomatic.

    opened by chmp 17
  • graphic rendering comes with json under Jupyter Notebook-5.4.0 (altair-2.0.0dev0, vega3-0.4.0)

    graphic rendering comes with json under Jupyter Notebook-5.4.0 (altair-2.0.0dev0, vega3-0.4.0)

    If I try this code:

    import seaborn as sns
    sns.set()
    df = sns.load_dataset("iris")
    # altair-2.0.0 example
    import altair as alt
    
    # Uncomment/run this line to enable Altair in JupyterLab/nteract:
    # alt.enable_mime_rendering() # api_v1
    #alt.renderers.enable('default') # api_v2
    alt.renderers.enable('notebook') # api_v2,if in Notebook
    w=alt.Chart(df).mark_bar().encode(
        x=alt.X('sepal_length', bin=alt.Bin(maxbins=50)),
        y='count(*):Q',
        color='species:N',
        #column='species',
    ).interactive()
    

    I get the desired graphics, but the unwanted json of the graphic also. How can I have only the Gaphics ? notebook_ipyvega_vegalite2

    opened by stonebig 16
  • widget breaks v2.3.0

    widget breaks v2.3.0

    @domoritz bad news ... I just tried to use the most recent ipyvega version (2.3.0) and somehow the widget code seems to break the notebook extension. I have not yet figured out what is different to the env I tested everything on, but I wanted to give you a heads up, in case you would like to revert the merge, while I investigate. :/

    bug 
    opened by chmp 15
  • Don't define/require under nbextension prefix

    Don't define/require under nbextension prefix

    Addresses part of #376. In order for that to fully close, @domoritz will have to npm publish (I'm not 100% sure ipywidgets.embed.embed_html_snippet() will work out of the box once published, but here's to hoping 🤞 ).

    To test that this doesn't break anything, I did:

    yarn run build
    pip install .
    jupyter notebook # then ran the examples
    
    opened by cpsievert 14
  • VegaWidget not updating properly

    VegaWidget not updating properly

    When creating a simple streaming VegaWidget, the updates are not behaving properly. See https://github.com/jdfekete/progressivis/blob/data-viewer/notebooks/VegaIssue.ipynb

    If a VegaWidget is created and updated many times in the same cell, it won't show until all the processing is done, and it is slow. If a VegaWidget is created and displayed in one cell, and updated many times in the next, it shows but flickers. If a VegaWidget is created and displayed in one cell, and its specs are changed many times, it behaves fine but probably less efficiently. Is there a way to make sure that the update is complete or to flush the changes?

    enhancement help wanted 
    opened by jdfekete 11
  • Altair's

    Altair's "notebook" renderer is no longer working

    Hi there, I noticed that the jupyter notebook integration of altair (following altair's instructions for displaying in the jupyter notebook doesn't work in the latest release of ipyvega. It instead gives:

    To use the 'notebook' renderer, you must install the vega package and the associated Jupyter extension. See https://altair-viz.github.io/getting_started/installation.html for more information.

    I believe this was caused by the switch over to poetry -- I see that the old setup.py had:

    ENTRY_POINTS        = {'altair.vegalite.v4.renderer': ['notebook=vega.vegalite:entry_point_renderer'],
                           'altair.vega.v5.renderer': ['notebook=vega.vega:entry_point_renderer']
                          }
    

    and I believe that removing that has broken the notebook/altair integration.

    I was able to workaround with:

    import vega.vegalite
    import vega.vega
    
    alt.vegalite.v4.renderers.register('notebook', vega.vegalite.entry_point_renderer)
    alt.v4.renderers.register('notebook', vega.vega.entry_point_renderer)
    

    Thanks & hope this helps!

    opened by b11z 10
  • fix: parse date values

    fix: parse date values

    Add support for datetime.date values in pandas DataFrame as described in #70

    Pandas types the SQL DATETYPE as an Object column with standard library datetime.date values. This also comes up when converting an Apache Spark Dataframe with DateType() columns.

    A simple check for date values in the object apply() function is all that is needed.

    image

    opened by johnmdonich 10
  • Tutorial example is not rendered

    Tutorial example is not rendered

    I'm following the installation instructions in the README:

    wget https://raw.githubusercontent.com/vega/ipyvega/master/notebooks/cars.json
    pip3 install jupyter pandas vega
    pip3 install --upgrade notebook
    jupyter notebook
    

    then follow the tutorial:

    -------------
    from vega import VegaLite
    import pandas as pd
    
    df = pd.read_json('cars.json')
    df.head()
    --------------
    vl = VegaLite({
      "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
      "mark": "point",
      "encoding": {
        "y": {"type": "quantitative", "field": "Acceleration"},
        "x": {"type": "quantitative", "field": "Horsepower"}
      }
    }, df)
    print(vl)
    vl
    

    I expected to get a similar output to the tutorial, but the figure isn't rendered:

    vega-tutorial

    I guess I'm missing a configuration step, apologies if this is somehow obvious!

    Currently installed packages:

    $ pip3 show jupyter pandas vega notebook
    Name: jupyter
    Version: 1.0.0
    Summary: Jupyter metapackage. Install all the Jupyter components in one go.
    Home-page: http://jupyter.org
    Author: Jupyter Development Team
    Author-email: [email protected]
    License: BSD
    Location: /home/ohad/.local/lib/python3.6/site-packages
    Requires: nbconvert, qtconsole, ipywidgets, jupyter-console, ipykernel, notebook
    Required-by: vega
    ---
    Name: pandas
    Version: 1.1.5
    Summary: Powerful data structures for data analysis, time series, and statistics
    Home-page: https://pandas.pydata.org
    Author: None
    Author-email: None
    License: BSD
    Location: /home/ohad/.local/lib/python3.6/site-packages
    Requires: python-dateutil, numpy, pytz
    Required-by: vega
    ---
    Name: vega
    Version: 3.5.0
    Summary: A Jupyter widget for Vega 5 and Vega-Lite 4
    Home-page: https://github.com/vega/ipyvega
    Author: Dominik Moritz
    Author-email: [email protected]
    License: BSD 3-clause
    Location: /home/ohad/.local/lib/python3.6/site-packages
    Requires: jupyter, pandas
    Required-by: 
    ---
    Name: notebook
    Version: 6.4.0
    Summary: A web-based notebook environment for interactive computing
    Home-page: http://jupyter.org
    Author: Jupyter Development Team
    Author-email: [email protected]
    License: BSD
    Location: /home/ohad/.local/lib/python3.6/site-packages
    Requires: prometheus-client, ipython-genutils, traitlets, jupyter-core, nbformat, nbconvert, jupyter-client, terminado, pyzmq, ipykernel, argon2-cffi, tornado, jinja2, Send2Trash
    Required-by: widgetsnbextension, jupyter
    
    opened by ohad 9
  • Plots duplicated when saving notebook repeatedly

    Plots duplicated when saving notebook repeatedly

    I've noticed an issue, where each time a (classic) jupyter notebook is saved, any vega plot gets duplicated an additional time.

    In troubleshooting, I can see that this line: https://github.com/vega/ipyvega/blob/8c9bba95830fa3439a29f8a855b7da5eb263dfce/src/index.ts#L61 never triggers, causing a PNG to get appended to the outputs each time. It appears that the if condition doesn't trigger because imgIndex === jsIndex + 2. Looking at the saved notebook, this is caused by an empty text/plain output nestled between the javascript and PNG outputs:

       "outputs": [
        {
         "data": {
          "application/javascript": ...
         },
         "metadata": {
          "jupyter-vega": "#fb102a8f-bd0f-4c3b-a1a4-2176718b7100"
         },
        {
         "data": {
          "text/plain": []
         },
         "metadata": {},
         "output_type": "display_data"
        },
        {
         "data": {
          "image/png": ...
         },
         "metadata": {
          "jupyter-vega": "#fb102a8f-bd0f-4c3b-a1a4-2176718b7100"
         },
         "output_type": "display_data"
        }
       ],
    

    In case it helps, here's a screenshot after saving (and reloading) the notebook multiple times: Screen Shot 2019-07-15 at 10 19 31 PM

    I'm hoping this might be enough to point towards a potential solution. Thanks!

    bug 
    opened by b11z 7
  • Rendering without side-effects?

    Rendering without side-effects?

    Comment from @Carreau at https://github.com/altair-viz/altair/issues/634

    _repr_*_ should as most as possible not have side effect, that would completely break things like nbconvert.

    If you want an assignment to also display you can tweak the config option of IPython. Yo may also try to have a repr widgets maybe instead of having side-effects ?

    Can we update ipyvega and/or the altair renderer framework so that ipyvega returns a displayable object rather than calling display() as a side-effect?

    opened by jakevdp 7
  • chore(deps-dev): bump webpack-cli from 4.10.0 to 5.0.1

    chore(deps-dev): bump webpack-cli from 4.10.0 to 5.0.1

    Bumps webpack-cli from 4.10.0 to 5.0.1.

    Release notes

    Sourced from webpack-cli's releases.

    v5.0.1

    5.0.1 (2022-12-05)

    Bug Fixes

    • make define-process-env-node-env alias node-env (#3514) (346a518)

    v5.0.0

    5.0.0 (2022-11-17)

    Bug Fixes

    • improve description of the --disable-interpret option (#3364) (bdb7e20)
    • remove the redundant utils export (#3343) (a9ce5d0)
    • respect NODE_PATH env variable (#3411) (83d1f58)
    • show all CLI specific flags in the minimum help output (#3354) (35843e8)

    Features

    • failOnWarnings option (#3317) (c48c848)
    • update commander to v9 (#3460) (6621c02)
    • added the --define-process-env-node-env option
    • update interpret to v3 and rechoir to v0.8
    • add an option for preventing interpret (#3329) (c737383)

    BREAKING CHANGES

    • the minimum supported webpack version is v5.0.0 (#3342) (b1af0dc), closes #3342
    • webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
    • webpack-cli no longer supports webpack-dev-server v3, the minimum supported version is webpack-dev-server v4.0.0
    • remove the migrate command (#3291) (56b43e4), closes #3291
    • remove the --prefetch option in favor the PrefetchPlugin plugin
    • remove the --node-env option in favor --define-process-env-node-env
    • remove the --hot option in favor of directly using the HotModuleReplacement plugin (only for build command, for serve it will work)
    • the behavior logic of the --entry option has been changed - previously it replaced your entries, now the option adds a specified entry, if you want to return the previous behavior please use webpack --entry-reset --entry './src/my-entry.js'
    Changelog

    Sourced from webpack-cli's changelog.

    5.0.1 (2022-12-05)

    Bug Fixes

    • make define-process-env-node-env alias node-env (#3514) (346a518)

    5.0.0 (2022-11-17)

    Bug Fixes

    • improve description of the --disable-interpret option (#3364) (bdb7e20)
    • remove the redundant utils export (#3343) (a9ce5d0)
    • respect NODE_PATH env variable (#3411) (83d1f58)
    • show all CLI specific flags in the minimum help output (#3354) (35843e8)

    Features

    • failOnWarnings option (#3317) (c48c848)
    • update commander to v9 (#3460) (6621c02)
    • added the --define-process-env-node-env option
    • update interpret to v3 and rechoir to v0.8
    • add an option for preventing interpret (#3329) (c737383)

    BREAKING CHANGES

    • the minimum supported webpack version is v5.0.0 (#3342) (b1af0dc), closes #3342
    • webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
    • webpack-cli no longer supports webpack-dev-server v3, the minimum supported version is webpack-dev-server v4.0.0
    • remove the migrate command (#3291) (56b43e4), closes #3291
    • remove the --prefetch option in favor the PrefetchPlugin plugin
    • remove the --node-env option in favor --define-process-env-node-env
    • remove the --hot option in favor of directly using the HotModuleReplacement plugin (only for build command, for serve it will work)
    • the behavior logic of the --entry option has been changed - previously it replaced your entries, now the option adds a specified entry, if you want to return the previous behavior please use webpack --entry-reset --entry './src/my-entry.js'
    Commits
    • 4a0f893 chore(release): publish new version
    • 9de982c chore: fix cspell
    • 32d26c8 chore(deps-dev): bump cspell from 6.15.1 to 6.16.0 (#3517)
    • 2788bf9 chore(deps-dev): bump eslint from 8.28.0 to 8.29.0 (#3516)
    • ac88ee4 chore(deps-dev): bump lint-staged from 13.0.4 to 13.1.0 (#3515)
    • 346a518 fix: make define-process-env-node-env alias node-env (#3514)
    • 3ec7b16 chore(deps): bump yeoman-environment from 3.12.1 to 3.13.0 (#3508)
    • c8adfa6 chore(deps-dev): bump @​types/node from 18.11.9 to 18.11.10 (#3513)
    • 0ad8cc2 chore(deps-dev): bump cspell from 6.15.0 to 6.15.1 (#3512)
    • d30f261 chore(deps-dev): bump ts-loader from 9.4.1 to 9.4.2 (#3511)
    • 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)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump webpack from 5.74.0 to 5.75.0

    chore(deps-dev): bump webpack from 5.74.0 to 5.75.0

    Bumps webpack from 5.74.0 to 5.75.0.

    Release notes

    Sourced from webpack's releases.

    v5.75.0

    Bugfixes

    • experiments.* normalize to false when opt-out
    • avoid NaN%
    • show the correct error when using a conflicting chunk name in code
    • HMR code tests existance of window before trying to access it
    • fix eval-nosources-* actually exclude sources
    • fix race condition where no module is returned from processing module
    • fix position of standalong semicolon in runtime code

    Features

    • add support for @import to extenal CSS when using experimental CSS in node
    • add i64 support to the deprecated WASM implementation

    Developer Experience

    • expose EnableWasmLoadingPlugin
    • add more typings
    • generate getters instead of readonly properties in typings to allow overriding them
    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)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump typescript from 4.9.3 to 4.9.4

    chore(deps-dev): bump typescript from 4.9.3 to 4.9.4

    Bumps typescript from 4.9.3 to 4.9.4.

    Release notes

    Sourced from typescript's releases.

    TypeScript 4.9.4

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:

    Changes:

    • e2868216f637e875a74c675845625eb15dcfe9a2 Bump version to 4.9.4 and LKG.
    • eb5419fc8d980859b98553586dfb5f40d811a745 Cherry-pick #51704 to release 4.9 (#51712)
    • b4d382b9b12460adf2da4cc0d1429cf19f8dc8be Cherry-pick changes for narrowing to tagged literal types.
    • e7a02f43fce47e1a39259ada5460bcc33c8e98b5 Port of #51626 and #51689 to release-4.9 (#51627)
    • 1727912f0437a7f367d90040fc4b0b4f3efd017a Cherry-pick fix around visitEachChild to release-4.9. (#51544)

    This list of changes was auto generated.

    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)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump filemanager-webpack-plugin from 7.0.0 to 8.0.0

    chore(deps-dev): bump filemanager-webpack-plugin from 7.0.0 to 8.0.0

    Bumps filemanager-webpack-plugin from 7.0.0 to 8.0.0.

    Changelog

    Sourced from filemanager-webpack-plugin's changelog.

    v8.0.0 (2022-11-16)

    • drop nodejs 12 support, requires node 14.13.1+ (0f334f0)
    • fix export syntax for typings (59b17ca)
    • update to rollup 3 (23e332c)
    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)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps): bump vega-lite from 4.17.0 to 5.6.0

    chore(deps): bump vega-lite from 4.17.0 to 5.6.0

    Bumps vega-lite from 4.17.0 to 5.6.0.

    Release notes

    Sourced from vega-lite's releases.

    v5.6.0

    :tada: This release contains work from new contributors! :tada:

    Thanks for all your work!

    :heart: Lam Thien Toan (@​danielmalaton)

    :heart: Brandon Hamilton (@​mistidoi)

    :heart: null@​sl-solution

    :heart: Zachary Bys (@​ZacharyBys)

    🚀 Enhancement

    🐛 Bug Fix

    ... (truncated)

    Changelog

    Sourced from vega-lite's changelog.

    v5.6.0 (Fri Oct 14 2022)

    :tada: This release contains work from new contributors! :tada:

    Thanks for all your work!

    :heart: Lam Thien Toan (@​danielmalaton)

    :heart: Brandon Hamilton (@​mistidoi)

    :heart: null@​sl-solution

    :heart: Zachary Bys (@​ZacharyBys)

    🚀 Enhancement

    🐛 Bug Fix

    ... (truncated)

    Commits
    • 1ff500a Bump version to: 5.6.0 [skip ci]
    • 71a7e87 Update CHANGELOG.md [skip ci]
    • 6ae6c11 Merge pull request #8469 from vega/next
    • 217e860 fix: Init the better orient for the ranged bar (#8475)
    • 43d3dee fix: Remove x2/y2 channels for overlaying line and point (#8472)
    • 93b4585 chore(deps-dev): bump @​rollup/plugin-babel from 5.3.1 to 6.0.0 (#8455)
    • 686b9d7 fix: update contributing.md (#8470)
    • 84501ab fix: try to see if fix: without scope triggers shipit for #8451 (#8468)
    • d4591fb fix(#6708): change domain order for union with (#8451)
    • ac50b06 chore(deps-dev): bump @​rollup/plugin-commonjs from 22.0.2 to 23.0.0 (#8456)
    • 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)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Support Jupyterlab

    Support Jupyterlab

    I'm getting an 'Error displaying widget: model not found' in jupyterlab - although it works using the voila extension within jupyterlab but i assume the widgets are loaded differently. Is jupyterlab supported? Console shows Module jupyter-vega, semver range 3.6.0 is not registered as a widget module

    enhancement 
    opened by mangecoeur 3
Owner
Vega
Data Visualization Languages & Tools
Vega
Drag’n’drop Pivot Tables and Charts for Jupyter/IPython Notebook, care of PivotTable.js

pivottablejs: the Python module Drag’n’drop Pivot Tables and Charts for Jupyter/IPython Notebook, care of PivotTable.js Installation pip install pivot

Nicolas Kruchten 512 Dec 26, 2022
Drag’n’drop Pivot Tables and Charts for Jupyter/IPython Notebook, care of PivotTable.js

pivottablejs: the Python module Drag’n’drop Pivot Tables and Charts for Jupyter/IPython Notebook, care of PivotTable.js Installation pip install pivot

Nicolas Kruchten 419 Feb 11, 2021
Interactive plotting for Pandas using Vega-Lite

pdvega: Vega-Lite plotting for Pandas Dataframes pdvega is a library that allows you to quickly create interactive Vega-Lite plots from Pandas datafra

Altair 342 Oct 26, 2022
Interactive plotting for Pandas using Vega-Lite

pdvega: Vega-Lite plotting for Pandas Dataframes pdvega is a library that allows you to quickly create interactive Vega-Lite plots from Pandas datafra

Altair 340 Feb 1, 2021
Plotting library for IPython/Jupyter notebooks

bqplot 2-D plotting library for Project Jupyter Introduction bqplot is a 2-D visualization system for Jupyter, based on the constructs of the Grammar

null 3.4k Dec 29, 2022
Plotting library for IPython/Jupyter notebooks

bqplot 2-D plotting library for Project Jupyter Introduction bqplot is a 2-D visualization system for Jupyter, based on the constructs of the Grammar

null 3.4k Dec 30, 2022
Plotting library for IPython/Jupyter notebooks

bqplot 2-D plotting library for Project Jupyter Introduction bqplot is a 2-D visualization system for Jupyter, based on the constructs of the Grammar

null 3k Feb 18, 2021
Render Jupyter notebook in the terminal

jut - JUpyter notebook Terminal viewer. The command line tool view the IPython/Jupyter notebook in the terminal. Install pip install jut Usage $jut --

Kracekumar 169 Dec 27, 2022
Visual Python is a GUI-based Python code generator, developed on the Jupyter Notebook environment as an extension.

Visual Python is a GUI-based Python code generator, developed on the Jupyter Notebook environment as an extension.

Visual Python 564 Jan 3, 2023
ipyvizzu - Jupyter notebook integration of Vizzu

ipyvizzu - Jupyter notebook integration of Vizzu. Tutorial · Examples · Repository About The Project ipyvizzu is the Jupyter Notebook integration of V

Vizzu 729 Jan 8, 2023
Analytical Web Apps for Python, R, Julia, and Jupyter. No JavaScript Required.

Dash Dash is the most downloaded, trusted Python framework for building ML & data science web apps. Built on top of Plotly.js, React and Flask, Dash t

Plotly 17.9k Dec 31, 2022
Analytical Web Apps for Python, R, Julia, and Jupyter. No JavaScript Required.

Dash Dash is the most downloaded, trusted Python framework for building ML & data science web apps. Built on top of Plotly.js, React and Flask, Dash t

Plotly 13.9k Feb 13, 2021
Analytical Web Apps for Python, R, Julia, and Jupyter. No JavaScript Required.

Dash Dash is the most downloaded, trusted Python framework for building ML & data science web apps. Built on top of Plotly.js, React and Flask, Dash t

Plotly 14k Feb 18, 2021
High performance, editable, stylable datagrids in jupyter and jupyterlab

An ipywidgets wrapper of regular-table for Jupyter. Examples Two Billion Rows Notebook Click Events Notebook Edit Events Notebook Styling Notebook Pan

J.P. Morgan Chase 75 Dec 15, 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
A Jupyter - Three.js bridge

pythreejs A Python / ThreeJS bridge utilizing the Jupyter widget infrastructure. Getting Started Installation Using pip: pip install pythreejs And the

Jupyter Widgets 844 Dec 27, 2022
A Jupyter - Three.js bridge

pythreejs A Python / ThreeJS bridge utilizing the Jupyter widget infrastructure. Getting Started Installation Using pip: pip install pythreejs And the

Jupyter Widgets 700 Feb 17, 2021
A Jupyter - Leaflet.js bridge

ipyleaflet A Jupyter / Leaflet bridge enabling interactive maps in the Jupyter notebook. Usage Selecting a basemap for a leaflet map: Loading a geojso

Jupyter Widgets 1.3k Dec 27, 2022
Draw datasets from within Jupyter.

drawdata This small python app allows you to draw a dataset in a jupyter notebook. This should be very useful when teaching machine learning algorithm

vincent d warmerdam 505 Nov 27, 2022