Skip to main content

Build interactive big data apps with Altair and Vega easily using Panel + VegaFusion.

Project description

Python Versions License: AGPL v3 Binder Follow on Twitter

Panel VegaFusion

WORK IN PROGRESS. PROOF OF CONCEPT WORKING. PACKAGE NOT WORKING!

The Panel VegaFusion pane allows you to create interactive big data apps based on the Altair plotting library and the Vega visualization specification.

It is all powered by VegaFusion which provides serverside acceleration for the Vega visualization grammar.

Reference Example

Install

pip install panel-vegafusion

Reference Example

import altair as alt
import panel as pn
from panel_vegafusion import VegaFusion
from panel_vegafusion.utils import get_plot, ALTAIR_BLUE, get_theme

pn.extension(template="fast")

theme=get_theme()
alt.themes.enable(theme)

plot=get_plot() # Can be replaced any Altair plot or Vega Specification

component = VegaFusion(plot, height=800).servable()

pn.state.template.param.update(
    site="Panel VegaFusion", title="Interactive BIG DATA apps with CROSSFILTERING for Altair and Vega",
    accent_base_color=ALTAIR_BLUE, header_background=ALTAIR_BLUE,
)

Todo

This needs to be done before alpha release

  • [] Fix all errors in invoke test.all
  • [] Make python package installable (and release it)
  • [] Implement way to get rid of the user having to serve the assets manually via --static dist=./src-js/dist.
  • [] Get things working on Binder

License - AGPLv3 - IMPORTANT

This Panel Vegafusion project is AGPLv3 Licensed because VegaFusion is AGPLv3 licensed and requires the author to provide this application's source code upon request.

SO PLEASE INVESTIGATE THE LEGAL ASPECTS ON YOUR OWN. YOU WILL BE USING THIS PROJECT AT YOUR OWN RISK ANYWAYS!

Legal Statement

References

Issues Identified

Develop

Install for development

git clone https://github.com/MarcSkovMadsen/panel-vegafusion.git
conda create -n panel_vegafusion -c conda-forge python=3.9 nodejs
conda activate panel_vegafusion
pip install -e .[all]
cd src-js
npm install --save-dev webpack-cli
npm install
cd ..

Build

Javascript package

invoke build.js

Python package

invoke build.package

Test

pytest test.all

Serve Dev App

For now you can serve an example with hot reload via

panel serve 'tests/apps/test_dev_app.py' --autoreload --show --static dist=./src-js/dist

Panel VegaFusion Test App

Reference

You can also find inspiration in the original Jupyter VegaFusion reference example via

jupyter lab tests/reference_example.ipynb

Release Python Package

Before releasing please make sures you have

  • updated all version numbers
  • build all packages
  • run all tests with succes
python -m twine upload dist/*<VERSION>*

to deploy the package 📦.

If you want to upload to Test Pypi first you can do so by adding --repository testpypi.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

panel-vegafusion-0.0.2.tar.gz (22.1 kB view hashes)

Uploaded Source

Built Distribution

panel_vegafusion-0.0.2-py3-none-any.whl (23.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page