Changelogs » Altair



Update includes full compatibility with version 3.3 of Vega-Lite.


- Added support for [vega themes]( via
``alt.themes.enable(theme_name)`` (1539)

- Added an ``alt.renderers.disable_max_rows()`` method for disabling the
maximum rows check (1538)

- Improved user-facing warnings/errors around layering and faceting (1535).

- ``data`` argument is now properly handled by  ```` (1525)

- Compound charts (layer, concat, hconcat, vconcat) now move data to the top
level by default. In particular, this means that the ``facet()`` method
can now be called directly on a layered chart without having to change
how data is specified. (1521)

- ``alt.LayerChart`` now supports ``mark_*()`` methods. If a layer specifies a
mark at the top level, all child charts will inherit it (unless they override
it explicitly).

- ``alt.Chart.facet()`` now handles wrapped facets; for example:
chart.facet('column_name', columns=5)

See ``altair/examples/`` for a more
complete example.

Bug fixes

- Make ``chart.serve()`` and ```` respect the data transformer
setting (1538)

- Fixed a deserialization bug for certain chart specs in schemapi (1543)

Backward-Incompatible Changes

- ``alt.Chart.facet()`` now accepts a wrapped facet encoding as a first positional
argument, rather than a row encoding. The following are examples of old invocations,
and the equivalent new invocations:

- ``chart.facet(row='col1', column='col2')``: unchanged
- ``chart.facet('col1', 'col2')``: change to ``chart.facet(row='col1', column='col2')``
- ``chart.facet('col1')``: change to ``chart.facet(row='col1')``

In each case, the new invocations are compatible back to Altair 2.X.

- Several of the encoding channels added in 3.0 have had their capitalization
corrected to better match the names used in the schema:

- ``alt.Fillopacity`` -> ``alt.FillOpacity``
- ``alt.Strokeopacity`` -> ``alt.StrokeOpacity``
- ``alt.Strokewidth`` -> ``alt.StrokeWidth``
- ``alt.Xerror`` -> ``alt.XError``
- ``alt.Xerror2`` -> ``alt.XError2``
- ``alt.Yerror`` -> ``alt.YError``
- ``alt.Yerror2`` -> ``alt.YError2``


Fix version info bug for HTML output and Colab & Kaggle renderers.


Update to Vega-Lite 3.2 and Vega 5.3 & support all new features. See for Vega-Lite
feature lists.


- new compound marks: ``mark_boxplot()``, ``mark_errorband()``, ``mark_errorbar()``
- new transforms: ``transform_impute()``, ``transform_joinaggregate()``, ``transform_flatten()``
``transform_fold()``, ``transform_sample()``, ``transform_stack()``
- new ``facet`` encoding that is similar to the ``row`` and ``column`` encoding, but
allows for wrapped facets
- new ``alt.concat()`` function that is similar to ``alt.hconcat`` and ``alt.vconcat``,
but allows for more general wrapped concatenation
- new ``columns`` keyword that allows wrapped faceting, repeating, and concatenation.
- many, many bug fixes
- tooltips can now be automatically populated using the ``tooltip`` mark configuration.
- ability to specify initial condisions for selections



- Several documentation cleanups & new examples

Bug Fixes

- Fix incompatibility with pandas version 0.24 (1315)


Includes many reworked examples in the example gallery.


- Better errors for non-string column names, as well as automatic conversion
of ``pandas.RangeIndex`` columns to strings (1107)

- Renderers now have set_embed_options() method (1203)

- Added kaggle renderer & more HTML output options (1123)

Backward-incompatible changes


- fix typing requirement in Python 3.6+ (1185)

- Added support & CI testing for Python 3.7 (1008)

Bug fixes

- Selection predicates now recognize all valid entries (1143)
- Python 2 support for `` (1134)


Bug Fixes

- fix missing JSON resource in ``altair.vega.v4`` (1097)


Bug Fixes

- appropriate handling of InlineData in dataset consolidation (1092)

- fix admonition formatting in documentation page (1094)



- better handling of datetimes and timezones (1053)

- all inline datasets are now converted to named datasets and stored at the
top level of the chart. This behavior can be disabled by setting
``alt.data_transformers.consolidate_datasets = False`` (951 & 1046)

- more streamlined shorthand syntax for window transforms (957)


- update from Vega-Lite 2.4.3 to Vega-Lite 2.6.0; see vega-lite change-logs [2.5.0]( [2.5.1]( [2.5.2]( [2.6.0](

Backward-incompatible changes

- ``alt.SortField`` renamed to ``alt.EncodingSortField`` and
``alt.WindowSortField`` renamed to ``alt.SortField`` (3741)

Bug Fixes

- Fixed serialization of logical operands on selections within
``transform_filter()``: (1075)

- Fixed sphinx issue which embedded chart specs twice (1088)

- Avoid Selenium import until it is actually needed (982)



- add a ``scale_factor`` argument to ```` to allow the
size/resolution of saved figures to be adjusted. (918)

- add an ``add_selection()`` method to add selections to charts (832)

- add ``chart.serve()`` and ``chart.display()`` methods for more flexibility
in displaying charts (831)

- allow multiple fields to be passed to encodings such as ``tooltip``
and ``detail`` (830)

- make ``timeUnit`` specifications more succinct, by parsing them in a manner
similar to aggregates (866)

- make ``to_json()`` and ``to_csv()`` have deterministic filenames, so in json
mode a single datasets will lead to a single on-disk serialization (862)

Breaking Changes

- make ``data`` the first argument for all compound chart types to match the
semantics of ``alt.Chart`` (this includes ``alt.FacetChart``,
``alt.LayerChart``, ``alt.RepeatChart``, ``alt.VConcatChart``, and
``alt.HConcatChart``) (895).

- update vega-lite to version 2.4.3 (836)

- Only API change is internal: ``alt.MarkProperties`` is now ``alt.MarkConfig``


- update vega to v3.3 & vega-embed to v3.11 in html output & colab renderer (838)


- Complete rewrite of Altair, focused on supporting Vega-Lite 2.X


This version of Altair is based on Vega-Lite 1.2.1.

Major additions

- Support for JupyterLab/nteract through MIME based rendering. Enable this by calling
`enable_mime_rendering()` before rendering visualizations

- Change default import in all code and docs to `import altair as alt`

- Check for missing and misspelled column names upon exporting or rendering,
and raise `FieldError` ([399](
if any problems are found. This can be disabled by setting `Chart.validated_columns=False`.

- Raise `MaxRowsExceeded`  if the number of rows in the dataset is larger than `Chart.max_rows`
to guard against sending large datasets to the browser.

- Move the Vega-Lite 1.x api into `altair.v1` to make it easier for us to migrate to Vega-Lite
2.x and continue to support 1.x. No import change are needed as `altair.v1` is aliased to
`altair` in this release`altair.v1` ([377](

- Moved the example notebooks into a separate repository ( that has Binder support

- Add `$schema` to top-level JSON spec ([370](

- Minor documentation revisions.

Bug fixes

- Make sure default mark is a point ([344](


Major additions

- Update to Vega-Lite 1.2 and make all its enhancements available to Altair

- Add ``Chart.serve`` method

- Add ``altair.expr`` machinery to specify transformations and filterings

- Add ``Chart.savechart`` method, which can output JSON, HTML, and (if Node
is installed) PNG and SVG. See ([213](

Bug fixes

- Countless minor bug fixes


- Update to Vega-Lite 1.2.1 and add its supported features

- Create website:

- Set up Travis to run conda & pip; and to build documentation


- Initial release of Altair