WORK IN PROGRESS. PROOF OF CONCEPT WORKING.
The Panel VegaFusion pane allows you to create interactive big data apps based on the Altair plotting library and the Vega visualization specification.
VegaFusion provides serverside acceleration for the Vega visualization grammar.
Panel makes it easy to create powerful data apps using the tools you know and ❤️. Member of the HoloViz ecosystem.
pip install panel-vegafusionIf you have Jupyter Lab installed and plan on using it you should definately also install the Panel Jupyterlab Preview via
jupyter serverextension enable panel.io.jupyter_server_extensionimport 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 by 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,
)You can serve the application via panel serve name_of_file.py or
panel serve name_of_notebook.ipynb. Add the --autoreload for hot reload during development
and --show to automatically open the app in the browser.
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! 👍
- VegaFusion Github | VegaFusion documentation
- Panel Docs | Panel Discourse | Awesome Panel
- DataShader | hvplot | HoloViews
- vegafusion/vegafusion #64 - Support Vega-Embed Themes
- Bokeh Discourse - Cannot bokeh build extension with wasm dependency
- bokeh/ipywidgets_bokeh #46 - Not working with VegaFusionWidget
- holoviz/param #597 - Add edit_readonly
- holoviz/panel #3149 - Object of type Chart is not JSON serializable
- vegafusion/vegafusion #62 - Please support Panel
- vegafusion/vegafusion #63 - Please provide simple .js build
- vegafusion/vegafusion #68 - Provide VegaFusionRunTime from the vegafusion package
- vegafusion/vegafusion #66 - Please support events
- vegafusion/vegafusion #67 - Uncaught (in promise) out of memory
- vegafusion/vegafusion #69 - Document how VegaFusion solves real problems
- vegafusion/vegafusion #70 - Move feather transformer to 'vegafusion' package
- vegafusion/vegafusion #67 - Support multiple 'vegafusion' renderers
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
cd ..Javascript package
invoke build.jsPython package
invoke build.packageinvoke test.allFor now you can serve an example with hot reload via
panel serve 'tests/apps/test_dev_app.py' --autoreload --showFor now you can serve an example with hot reload via
panel serve 'examples/*.py' --autoreload --showYou can also find inspiration in the original Jupyter VegaFusion reference example via
jupyter lab tests/reference_example.ipynbBefore 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 testpypi first you can do so by adding --repository testpypi.


