Skip to content

Releases: vega/altair

Version 4.2.1

26 Jan 23:04
Compare
Choose a tag to compare

Note: This version requires jsonschema>=4.5.0 see (#2857).

Bug Fixes

  • Disable uri-reference format check in jsonsschema (#2771).
  • Replace iteritems with items due to pandas deprecation (#2683).

Maintenance

  • Add deprecation and removal warnings for Vega-Lite v3 wrappers and Vega v5 wrappers (#2843).

Version 4.2.0

29 Dec 13:30
Compare
Choose a tag to compare

Enhancements

Bug Fixes

  • Fix to_dict() for nested selections (#2120).
  • Fix item access for expressions (#2099).

Version 4.1.0

01 Apr 13:29
Compare
Choose a tag to compare
  • Minimum Python version is now 3.6
  • Update Vega-Lite to version 4.8.1; many new features and bug fixes from Vega-Lite versions 4.1 through 4.8; see Vega-Lite Release Notes.

Enhancements

Bug Fixes

  • Support Python 3.8 (#1958)
  • Support multiple views in JupyterLab (#1986)
  • Support numpy types within specifications (#1914)
  • Support pandas nullable ints and string types (#1924)

Maintenance

  • Altair now uses black and flake8 for maintaining code quality & consistency.

Version 4.0.1

23 Mar 15:30
Compare
Choose a tag to compare

Bug fixes

  • Update Vega-Lite version to 4.0.2
  • Fix issue with duplicate chart divs in HTML renderer (#1888)

Version 4.0.0 Release

11 Dec 06:03
Compare
Choose a tag to compare

Altair Version 4.0.0 release

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.

Enhancements

  • 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

  • Image mark (Example)
    image

  • 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,
    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

Grammar Changes

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

Version 3.3.0

27 Nov 14:19
Compare
Choose a tag to compare

Version 3.3.0

released Nov 27, 2019

Last release to support Python 2

Enhancements

  • Add inheritance structure to low-level schema classes (#1803)
  • Add html renderer which works across frontends (#1793)
  • Support Python 3.8 (#1740, #1781)
  • Add :G shorthand for geojson type (#1714)
  • Add data generator interface: alt.sequence, alt.graticule,
    alt.sphere() (#1667, #1687)
  • Support geographic data sources via __geo_interface__ (#1664)

Bug Fixes

  • Support pickle and copy.deepcopy for chart objects (#1805)
  • Fix bug when specifying count() within transform_joinaggregate() (#1751)
  • Fix LayerChart.add_selection (#1794)
  • Fix arguments to project() method (#1717)
  • Fix composition of multiple selections (#1707)

Version 3.2.0

06 Aug 03:15
Compare
Choose a tag to compare

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)

Version 3.1.0

23 Mar 15:28
Compare
Choose a tag to compare

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

Version 3.0.1

23 Mar 15:26
Compare
Choose a tag to compare

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

Version 3.0

30 Apr 22:00
Compare
Choose a tag to compare

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.

Highlights

  • 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 conditions for selections