Skip to content

Releases: vega/altair

Weekly Build 6.1.0.dev20260330

30 Mar 04:02
5fa5ea4

Choose a tag to compare

Pre-release

Weekly Pre-Release Build of Altair

This is a pre-release version for testing purposes.

Build Information

Version: 6.1.0.dev20260330
Tag: weekly-20260330-5fa5ea4e
Previous Weekly Tag: weekly-20260323-98de0277

Installation

From PyPI (recommended)

Install the latest weekly build directly from PyPI:

pip install altair==6.1.0.dev20260330
# or
uv pip install altair==6.1.0.dev20260330

Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260330) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.

From GitHub Repository (direct install)

Install directly from the tagged commit without downloading the wheel:

Command line (pip or uv):

pip install git+https://github.com/vega/altair.git@weekly-20260330-5fa5ea4e
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260330-5fa5ea4e

Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.

Add to pyproject.toml (pip/uv):

[project]
dependencies = [
    "altair @ git+https://github.com/vega/altair.git@weekly-20260330-5fa5ea4e",
]

Add to pixi.toml (pixi):

[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260330-5fa5ea4e" }

From GitHub Release (manual download)

Download the wheel file from the assets below and install:

pip install altair-6.1.0.dev20260330-py3-none-any.whl

Testing & Feedback

Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!

Weekly Build 6.1.0.dev20260323

23 Mar 03:55
98de027

Choose a tag to compare

Pre-release

Weekly Pre-Release Build of Altair

This is a pre-release version for testing purposes.

Build Information

Version: 6.1.0.dev20260323
Tag: weekly-20260323-98de0277
Previous Weekly Tag: weekly-20260316-49e745b8

Installation

From PyPI (recommended)

Install the latest weekly build directly from PyPI:

pip install altair==6.1.0.dev20260323
# or
uv pip install altair==6.1.0.dev20260323

Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260323) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.

From GitHub Repository (direct install)

Install directly from the tagged commit without downloading the wheel:

Command line (pip or uv):

pip install git+https://github.com/vega/altair.git@weekly-20260323-98de0277
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260323-98de0277

Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.

Add to pyproject.toml (pip/uv):

[project]
dependencies = [
    "altair @ git+https://github.com/vega/altair.git@weekly-20260323-98de0277",
]

Add to pixi.toml (pixi):

[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260323-98de0277" }

From GitHub Release (manual download)

Download the wheel file from the assets below and install:

pip install altair-6.1.0.dev20260323-py3-none-any.whl

Testing & Feedback

Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!

Weekly Build 6.1.0.dev20260316

16 Mar 04:01
49e745b

Choose a tag to compare

Pre-release

Weekly Pre-Release Build of Altair

This is a pre-release version for testing purposes.

Build Information

Version: 6.1.0.dev20260316
Tag: weekly-20260316-49e745b8
Previous Weekly Tag: weekly-20260309-356c78bb

Installation

From PyPI (recommended)

Install the latest weekly build directly from PyPI:

pip install altair==6.1.0.dev20260316
# or
uv pip install altair==6.1.0.dev20260316

Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260316) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.

From GitHub Repository (direct install)

Install directly from the tagged commit without downloading the wheel:

Command line (pip or uv):

pip install git+https://github.com/vega/altair.git@weekly-20260316-49e745b8
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260316-49e745b8

Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.

Add to pyproject.toml (pip/uv):

[project]
dependencies = [
    "altair @ git+https://github.com/vega/altair.git@weekly-20260316-49e745b8",
]

Add to pixi.toml (pixi):

[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260316-49e745b8" }

From GitHub Release (manual download)

Download the wheel file from the assets below and install:

pip install altair-6.1.0.dev20260316-py3-none-any.whl

Testing & Feedback

Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!

Weekly Build 6.1.0.dev20260309

09 Mar 03:49
356c78b

Choose a tag to compare

Pre-release

Weekly Pre-Release Build of Altair

This is a pre-release version for testing purposes.

Build Information

Version: 6.1.0.dev20260309
Tag: weekly-20260309-356c78bb
Previous Weekly Tag: weekly-20260223-903e68e1

Installation

From PyPI (recommended)

Install the latest weekly build directly from PyPI:

pip install altair==6.1.0.dev20260309
# or
uv pip install altair==6.1.0.dev20260309

Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260309) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.

From GitHub Repository (direct install)

Install directly from the tagged commit without downloading the wheel:

Command line (pip or uv):

pip install git+https://github.com/vega/altair.git@weekly-20260309-356c78bb
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260309-356c78bb

Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.

Add to pyproject.toml (pip/uv):

[project]
dependencies = [
    "altair @ git+https://github.com/vega/altair.git@weekly-20260309-356c78bb",
]

Add to pixi.toml (pixi):

[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260309-356c78bb" }

From GitHub Release (manual download)

Download the wheel file from the assets below and install:

pip install altair-6.1.0.dev20260309-py3-none-any.whl

Testing & Feedback

Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!

Weekly Build 6.1.0.dev20260223

23 Feb 03:52
903e68e

Choose a tag to compare

Pre-release

Weekly Pre-Release Build of Altair

This is a pre-release version for testing purposes.

Build Information

Version: 6.1.0.dev20260223
Tag: weekly-20260223-903e68e1
Previous Weekly Tag: weekly-20260216-e85e1e3b

Installation

From PyPI (recommended)

Install the latest weekly build directly from PyPI:

pip install altair==6.1.0.dev20260223
# or
uv pip install altair==6.1.0.dev20260223

Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260223) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.

From GitHub Repository (direct install)

Install directly from the tagged commit without downloading the wheel:

Command line (pip or uv):

pip install git+https://github.com/vega/altair.git@weekly-20260223-903e68e1
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260223-903e68e1

Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.

Add to pyproject.toml (pip/uv):

[project]
dependencies = [
    "altair @ git+https://github.com/vega/altair.git@weekly-20260223-903e68e1",
]

Add to pixi.toml (pixi):

[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260223-903e68e1" }

From GitHub Release (manual download)

Download the wheel file from the assets below and install:

pip install altair-6.1.0.dev20260223-py3-none-any.whl

Testing & Feedback

Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!

Weekly Build 6.1.0.dev20260216

16 Feb 03:53
e85e1e3

Choose a tag to compare

Pre-release

Weekly Pre-Release Build of Altair

This is a pre-release version for testing purposes.

Build Information

Version: 6.1.0.dev20260216
Tag: weekly-20260216-e85e1e3b
Previous Weekly Tag: weekly-20260126-64e0d685

Installation

From PyPI (recommended)

Install the latest weekly build directly from PyPI:

pip install altair==6.1.0.dev20260216
# or
uv pip install altair==6.1.0.dev20260216

Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260216) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.

From GitHub Repository (direct install)

Install directly from the tagged commit without downloading the wheel:

Command line (pip or uv):

pip install git+https://github.com/vega/altair.git@weekly-20260216-e85e1e3b
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260216-e85e1e3b

Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.

Add to pyproject.toml (pip/uv):

[project]
dependencies = [
    "altair @ git+https://github.com/vega/altair.git@weekly-20260216-e85e1e3b",
]

Add to pixi.toml (pixi):

[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260216-e85e1e3b" }

From GitHub Release (manual download)

Download the wheel file from the assets below and install:

pip install altair-6.1.0.dev20260216-py3-none-any.whl

Testing & Feedback

Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!

Weekly Build 6.1.0.dev20260126

26 Jan 03:39
64e0d68

Choose a tag to compare

Pre-release

Weekly Pre-Release Build of Altair

This is a pre-release version for testing purposes.

Build Information

Version: 6.1.0.dev20260126
Tag: weekly-20260126-64e0d685
Previous Weekly Tag: weekly-20260119-a2afad36

Installation

From PyPI (recommended)

Install the latest weekly build directly from PyPI:

pip install altair==6.1.0.dev20260126
# or
uv pip install altair==6.1.0.dev20260126

Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260126) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.

From GitHub Repository (direct install)

Install directly from the tagged commit without downloading the wheel:

Command line (pip or uv):

pip install git+https://github.com/vega/altair.git@weekly-20260126-64e0d685
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260126-64e0d685

Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.

Add to pyproject.toml (pip/uv):

[project]
dependencies = [
    "altair @ git+https://github.com/vega/altair.git@weekly-20260126-64e0d685",
]

Add to pixi.toml (pixi):

[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260126-64e0d685" }

From GitHub Release (manual download)

Download the wheel file from the assets below and install:

pip install altair-6.1.0.dev20260126-py3-none-any.whl

Testing & Feedback

Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!

v6.0.0

12 Nov 11:01
8693285

Choose a tag to compare

Release v6.0.0

The Vega-Altair team is pleased to announce the release of version 6.0.0. Firstly, we are grateful for the many returning contributors (@franzhaas, @dangotbanned, @dsmedia, @joelostblom, @tempdata73, @mattijn, @jonmmease, @eitanlees, @kurtmckee, @MarcoGorelli), and a special shoutout to all the new contributors (@JasonnnW3000, @edmundmiller, @jannisko, @stanmart, @star1327p, @baldwint, @daizutabi, @azjps, @joaopalmeiro, @bobot). You are all awesome!

In short what is included with the version 6 release of Altair.

We test all changes thoroughly, but nevertheless, if you encounter any issue or like to start a discussion. Please feel free!

Full details are available in the complete changelog below.

Breaking

Enhancements

Bug Fixes

Documentation

Other Changes

Read more

Version 5.5.0

24 Nov 00:12
b2ff8ce

Choose a tag to compare

Release 5.5.0

The Vega-Altair team is pleased to announce the release of version 5.5.0. This version introduces several exciting new features and enhancements including a revamped theme system, a new renderer optimized for screen readers, and numerous type system updates that improve auto-completion and make it easier to integrate Altair into larger typed programs.

This release adds Python 3.13 and removes Python 3.8 support. It also includes a variety of documentation improvements and a range of important bug fixes.

Thanks to our maintainers (@binste, @dangotbanned, @joelostblom, @mattijn, and @jonmmease), returning contributors (@MarcoGorelli, @daylinmorgan, and @dsmedia), and first time contributors (@jpn--, @davidgroves, and @apoorvkh) for these improvements.

What's Changed

Deprecation

alt.themes

This release deprecates the alt.themes ThemeRegistry object and replaces it with an improved theme API in the new alt.theme module.
See the updated Chart Themes documentation for more information.

Note

Usage of the legacy alt.themes registry will be supported until version 6, but will now display a warning on first use.

Example of registering a custom theme

import altair as alt
import pandas as pd

data = pd.DataFrame({'x': [5, 3, 6, 7, 2],
                     'y': ['A', 'B', 'C', 'D', 'E']})

@alt.theme.register("my_little_theme", enable=True)
def custom_theme():
    return alt.theme.ThemeConfig(
        config={
            "bar":{"color":"black"}
        }
    )

chart = alt.Chart(data).mark_bar().encode(
    x='x',
    y='y',
)
chart  # enable default using `alt.theme.enable("default")`

Example of instant feedback while you define a theme config through Pylance in VSCode

Enhancements

Olli Renderer

This release integrates the Olli project to provide a chart renderer that augments chart visualizations with a keyboard-navigable structure accessible to screen readers.

  • Add 'olli' renderer to generate accessible text structures for screen reader users by @binste in #3580

Example of olli renderer:

import altair as alt
from vega_datasets import data

alt.renderers.enable("olli")

cars = data.cars.url
chart = alt.Chart(cars).mark_bar().encode(
    y='Cylinders:O',
    x='mean_acc:Q'
).transform_aggregate(
    mean_acc='mean(Acceleration)',
    groupby=["Cylinders"]
)
chart

Expressions and Selections

Several improvements were made to Altair's expression and selection APIs:

Example of combining predicates within .transform_filter

import altair as alt
from vega_datasets import data

source = data.population.url
chart = alt.Chart(source).mark_line().encode(
    x="age:O",
    y="sum(people):Q",
    color="year:O"
).transform_filter(
    ~alt.FieldRangePredicate(field='year', range=[1900, 1960]) 
    & (alt.datum.age <= 70)
)
chart

Example of using Python datetime.date for value in alt.selection_interval()

import datetime
import altair as alt
from vega_datasets import data

source = data.unemployment_across_industries.url
dt_values = [datetime.date(2005, 1, 1), datetime.date(2009, 1, 1)]

brush = alt.selection_interval(
    encodings=['x'],
    value={"x": dt_values}
)

base = alt.Chart(source).mark_area(
    color='goldenrod',
    opacity=0.3
).encode(
    x='yearmonth(date):T',
    y='sum(count):Q',
)

background = base.add_params(brush)
selected = base.transform_filter(brush).mark_area(color='goldenrod')

background + selected

Multiple predicates and constraints in Chart.transform_filter

Example of using keyword-argument constraints to simplify filter compositions:

import altair as alt
from vega_datasets import data

source = data.population.url
chart = alt.Chart(source).mark_area().encode(
    x="age:O",
    y="sum(people):Q",
    color="year:O"
).transform_filter(year=2000, sex=1)
chart
image

Bug Fixes

Documentation

Several new examples were added to the documentation

Example of using alt.when().then().otherwise()

import altair as alt
from vega_datasets import data

source = data.cars()

brush = alt.selection_interval()

chart = alt.Chart(source).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color=alt.when(brush).then("Origin").otherwise(alt.value("lightgray"))
).add_params(
    brush
)
chart

Example of using luminance in an expression to dynamically colorize text

import altair as alt
from vega_datasets import data

source = data.barley()

base = alt.Chart(source).encode(
    x=alt.X('sum(yield):Q').stack('zero'),
    y=alt.Y('site:O').sort('-x'),
    text=alt.Text('sum(yield):Q', format='.0f')
)

bars = base.mark_bar(
    tooltip=alt.expr("luminance(scale('color', datum.sum_yield))")
).encode(
    color='sum(yield):Q'
)

text = base.mark_text(
    align='right',
    dx=-3,
    color=alt.expr("luminance(scale('color', datum.sum_yield)) > 0.5 ? 'black' : 'white'")
)

bars + text
Read more

Version 5.4.1

27 Aug 04:41

Choose a tag to compare

What's Changed

Enhancements

Bug Fixes

Documentation

Other Changes

Full Changelog: v5.4.0...v5.4.1