Altair v3.2.0 Release Notes

Release Date: 2019-08-05 // 4 months ago
  • 🔖 Version 3.2.0 (released August 5, 2019)

    🚀 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:

    ✨ Enhancements

    • Selector values can be used directly in expressions (#1599)
    • Top-level chart repr is now truncated to improve readability of error
      messages (#1572)

    🐛 Bug Fixes

    • top-level add_selection methods now delegate to sub-charts. Previously
      they produced invalid charts (#1607)
    • 🚚 Unsupported mark_*() methods removed from LayerChart (#1607)
    • 🆕 New encoding channels are properly parsed (#1597)
    • Data context is propagated when encodings are specified as lists (#1587)

    Backward-Incompatible Changes

    • alt.LayerChart no longer has mark_*() methods, because they never
      produced valid chart specifications) (#1607)

Previous changes from v3.1.0

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

    ✨ Enhancements

    • ➕ 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.

    🐛 Bug fixes

    • 👉 Make chart.serve() and chart.save() 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