Releases: vega/altair
Version 4.2.1
Version 4.2.0
- Update Vega-Lite from version 4.8.1 to version 4.17.0; see Vega-Lite Release Notes.
Enhancements
- Pie charts are now supported through the use of
mark_arc
. (Examples: eg. Pie Chart and Radial Chart) - Support for the
datum
encoding specifications from Vega-Lite; see Vega-Lite Datum Definition. (Examples: Line Chart with datum and Line Chart with datum for color.) angle
encoding can now be used to control point styles (Example: Wind Vector Map)- Support for serialising pandas nullable data types for float data (#2399).
- Automatically create an empty data object when
Chart
is called without a data parameter (#2515). - Allow the use of pathlib Paths when saving charts (#2355).
- Support deepcopy for charts (#2403).
Bug Fixes
Version 4.1.0
- 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
strokeDash
encoding can now be used to control line styles (Example: Multi Series Line Chartchart.save()
now relies on altair_saver for more flexibility (#1943).- New
chart.show()
method replaceschart.serve()
, and relies on altair_viewer to allow offline viewing of charts (#1988).
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
Version 4.0.1
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
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)
-
Responsive chart width and height: (Example)
-
Bins responsive to selections: (Example)
-
New pivot transform: (Example)
-
New Regression transform: (Example)
-
New LOESS transform: (Example)
-
New density transform: (Example)
-
Image mark (Example)
-
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)
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, usechart.properties(width={"step": rangeStep})
or
chart.configure_view(step=rangeStep)
. -
align
,center
,spacing
, andcolumns
are no longer valid chart properties, but
are moved to the encoding classes to which they refer.
Version 3.3.0
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
Version 3.2.0
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 hasmark_*()
methods, because they never
produced valid chart specifications) (#1607)
Version 3.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 byChart.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 supportsmark_*()
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)
Seealtair/examples/us_population_over_time_facet.py
for a more complete example.
Bug fixes
-
Make
chart.serve()
andchart.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 tochart.facet(row='col1', column='col2')
-
chart.facet('col1')
: change tochart.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
Fix version info bug for HTML output and Colab & Kaggle renderers.
Version 3.0
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 therow
andcolumn
encoding, but allows for wrapped facets - new
alt.concat()
function that is similar toalt.hconcat
andalt.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