Skip to main content

A python engine for evaluating Altair transforms.

Project description

Altair Saver

github actions github actions code style black Open in Colab

This packge provides extensions to Altair for saving charts to a variety of output types. Supported output formats are:

  • .json/.vl.json: Vega-Lite JSON specification
  • .vg.json: Vega JSON specification
  • .html: HTML output
  • .png: PNG image
  • .svg: SVG image
  • .pdf: PDF image


The altair_saver library has a single public function, Given an Altair chart named chart, you can use it as follows:

from altair_saver import save

save(chart, "chart.vl.json")              # Vega-Lite JSON specification
save(chart, "")              # Vega JSON specification
save(chart, "chart.html")                 # HTML document
save(chart, "chart.html", inline=True)    # HTML document with all JS code included inline
save(chart, "chart.png")                  # PNG Image
save(chart, "chart.svg")                  # SVG Image
save(chart, "chart.pdf")                  # PDF Image


Additionally, altair_saver provides an Altair Renderer entrypoint that can display the above outputs directly in Jupyter notebooks. For example, you can specify a vega-lite mimetype (supported by JupyterLab, nteract, and other platforms) with a PNG fallback for other frontends as follows:

alt.renderers.enable('altair_saver', ['vega-lite', 'png'])


The altair_saver package can be installed with:

$ pip install git+

Saving as vl.json and as html requires no additional setup.

To save charts in other formats requires additional dependencies in order to execute the javascript code used to render and save Altair charts. altair_saver provides interfaces to two different backends, respectively based on Selenium and NodeJS.


The selenium backend supports the following formats:

  • .vg.json
  • .png
  • .svg.

To be used, it requires the Selenium Python package, and a properly configured installation of either chromedriver or geckodriver.

On Linux systems, this can be setup as follows:

$ pip install selenium
$ apt-get install chromium-chromedriver

Using conda, the required packages can be installed as follows (a compatible version of Google Chrome must be installed separately):

$ conda install -c python-chromedriver-binary

Selenium supports other browsers as well, but altair-saver is currently only tested with Chrome.


The nodejs backend supports the following formats:

  • .vg.json
  • .png
  • .svg
  • .pdf

It requires NodeJS, along with the vega-lite, vega-cli, and canvas packages.

First install NodeJS either by direct download or via a package manager, and then use the npm tool to install the required packages:

$ npm install vega-lite vega-cli canvas

Using conda, node and the required packages can be installed as follows:

$ conda install -c conda-forge nodejs
$ npm install -g vega-lite vega-cli canvas

Project details

Download files

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

Files for altair-saver, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size altair_saver-0.1.0-py3-none-any.whl (101.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size altair_saver-0.1.0.tar.gz (97.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page