altair.when
altair.when(predicate=Undefined, *more_predicates, empty=Undefined, **constraints)
Начинает условие when-then-otherwise.
Результирующий предикат объединяет predicate и дополнительные позиционные и именованные аргументы оператором &.
Параметры
predicateПредикат выбора или проверки. Строка интерпретируется как проверяемое выражение. Принимаются те же типы аргументов, что и в condition.
*more_predicatesДополнительные предикаты, поддерживающие оператор &.
emptyПредикат пустого выбора по умолчанию возвращает True. Для изменения задайте empty=False. Если один Parameter используется несколько раз,
alt.when(..., empty=...)позволяет отдельно настроить каждый случай.**constraintsПредикаты равенства полей: сокращение для
alt.datum.field_name == value. Примеры приведены ниже.
When — промежуточное состояние. Для завершения условия нужно вызвать When.then().
Примечания
Синтаксис непосредственно основан на when-then-otherwise из polars.when.
Примеры
Подготовка общей диаграммы:
Accepts the same range of inputs as in :func:`.condition()`.
Обычная конструкция if-then-else напрямую записывается через when-then-otherwise:
When ``predicate`` is a ``Parameter`` that is used more than once,
``alt.when(..., empty=...)`` provides granular control for each occurrence.
Без otherwise используется значение канала по умолчанию:
import altair as alt
from altair.datasets import data
source = data.cars()
brush = alt.selection_interval()
points = (
alt.Chart(source)
.mark_point()
.encode(x="Horsepower", y="Miles_per_Gallon")
.add_params(brush)
)
points
Позиционные предикаты объединяются оператором &:
points.encode(color=alt.when(brush).then("Origin").otherwise(alt.value("lightgray")))
Именованные ограничения constraints упрощают составные условия:
points.encode(color=alt.when(brush).then("Origin"))