strokeDash encoding can now be used to control line styles (Example: Multi Series Line Chart chart.save() now relies on altair_saver for more flexibility (#1943).chart.show() method replaces chart.serve(), and relies on altair_viewer to allow offline viewing of charts (#1988).π§ ##Maintenance
π Version 4.0.0 is based on Vega-Lite version 4.0, which you can read about at
π https://github.com/vega/vega-lite/releases/tag/v4.0.0.
β
It is the first version of Altair to drop Python 2 compatibility, and is tested
on Python 3.5 and newer.
π Support for interactive legends: (Example)
interactive legend
π± Responsive chart width and height: (Example)
dynamic width
π± Bins responsive to selections: (Example)
π± responsive bin
π New pivot transform: (Example)
pivot
π New Regression transform: (Example)
regression
π New LOESS transform: (Example)
loess
π New density transform: (Example)
density
π New default html renderer, directly compatible with Jupyter Notebook and
JupyterLab without the need for frontend extensions, as well as tools like
nbviewer and nbconvert, and related notebook environments such as Zeppelin,
0οΈβ£ Colab, Kaggle Kernels, and DataBricks. To enable the old default renderer, use:
alt.renderers.enable('mimetype')
π Support per-corner radius for bar marks: (Example)
round-bar
Sort-by-field can now use the encoding name directly. So instead of
alt.Y('y:Q', sort=alt.EncodingSortField('x_field', order='descending'))
you can now use::
alt.Y('y:Q', sort="-x")
π§ The rangeStep argument to :class:Scale and :meth:Chart.configure_scale is deprecated.
instead, use chart.properties(width={"step": rangeStep}) or
π§ chart.configure_view(step=rangeStep).
align, center, spacing, and columns are no longer valid chart properties, but
π are moved to the encoding classes to which they refer.
π released Nov 27, 2019
π Last release to support Python 2
html renderer which works across frontends (#1793):G shorthand for geojson type (#1714)alt.sequence, alt.graticule,alt.sphere() (#1667, #1687)__geo_interface__ (#1664)π Upgraded to Vega-Lite version 3.4 (See Vega-Lite 3.4 Release Notes).
Following are changes to Altair in addition to those that came with VL 3.4:
add_selection methods now delegate to sub-charts. Previouslymark_*() methods removed from LayerChart (#1607)alt.LayerChart no longer has mark_*() methods, because they neverβ‘οΈ 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 Chart.properties (#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/us_population_over_time_facet.py for a more
complete example.
π Make chart.serve() and chart.save() respect the data transformer
setting (#1538)
π Fixed a deserialization bug for certain chart specs in schemapi (#1543)
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'): unchangedchart.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.FillOpacityalt.Strokeopacity -> alt.StrokeOpacityalt.Strokewidth -> alt.StrokeWidthalt.Xerror -> alt.XErroralt.Xerror2 -> alt.XError2alt.Yerror -> alt.YErroralt.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 π https://github.com/vega/vega-lite/releases/tag/v3.0.0 for Vega-Lite π feature lists.
mark_boxplot(), mark_errorband(), mark_errorbar()transform_impute(), transform_joinaggregate(), transform_flatten()
transform_fold(), transform_sample(), transform_stack()facet encoding that is similar to the row and column encoding, but
allows for wrapped facetsalt.concat() function that is similar to alt.hconcat and alt.vconcat,
but allows for more general wrapped concatenationcolumns keyword that allows wrapped faceting, repeating, and concatenation.tooltip mark configuration.