This repo is no longer maintained.
Since Altair 5.3,
the functionality of Altair Viewer is now available in Altair via the vl-convert package.
See the docs on how to use the browser renderer to display charts via .show()
,
and the PR vega/altair#3379 for more details.
Offline chart viewer for Altair visualizations
This package provides tools for viewing Altair charts without a web connection in arbitrary Python environments. Charts can be displayed either inline in a Jupyter notebook environment, or in a separate browser window for use in any environment.
Altair Viewer can be installed from the
Python Package Index with pip
:
$ pip install altair_viewer
Altair viewer provides two top-level functions for displaying charts: display()
and show()
.
Their intended use is slightly different:
import altair_viewer
altair_viewer.display(chart)
display(chart)
is meant for use in interactive computing environments where
a single Python process is used interactively. It will serve a chart viewer at a localhost
URL, and any susequent chart created within the session will appear in the same window.
The background server will be terminated when the main Python process terminates, so this
is not suitable for standalone scripts.
import altair_viewer
altair_viewer.show(chart)
show(chart)
is meant for use once at the end of a Python script. It does the
same as display()
, but automatically opens a browser window, and adds an input
prompt to prevent the script (and the server it creates) from terminating.
Within Jupyter notebook, IPython terminal, and related environments that support
Mimetype-based display,
altair viewer can be used by enabling the altair_viewer
renderer:
import altair as alt
alt.renderers.enable('altair_viewer')
This will cause charts at the end of a Jupyter notebook cell to be rendered in a
separate browser window, as with the display()
and show()
methods.
If enabled with inline=True
, charts will be rendered inline in the notebook:
import altair as alt
alt.renderers.enable('altair_viewer', inline=True)
To display a single inline chart using Altair viewer in an IPython environment without
globally enabling the associated renderer, you can use the display
method directly:
import altair_viewer
altair_viewer.display(chart, inline=True)
Note that the display based on altair viewer will only function correctly as long as the kernel that created the charts is running, as it depends on the background server started by the kernel. In particular, this means that if you save a notebook and reopen it later, charts will not display until the associated cells are re-run.