Вычисляемые поля — Calculate
Преобразование calculate создаёт новые поля набора данных, вычисляя их из других полей с помощью выражений.
В этом простом примере мы берём последовательность исходных значений и вычисляем несколько тригонометрических величин:
import altair as alt
import pandas as pd
data = pd.DataFrame({'t': range(101)})
alt.Chart(data).mark_line().encode(
x='x:Q',
y='y:Q',
order='t:Q'
).transform_calculate(
x='cos(datum.t * PI / 50)',
y='sin(datum.t * PI / 25)'
)
Каждый аргумент transform_calculate — строка с выражением Vega. Язык выражений предоставляет определённый набор операций в стиле JavaScript для вычисления нового поля из существующего.
Чтобы упростить составление выражений Vega в Python, Altair предоставляет модуль expr. Его константы и функции позволяют записывать выражения с синтаксисом Python, например:
alt.Chart(data).mark_line().encode(
x='x:Q',
y='y:Q',
order='t:Q'
).transform_calculate(
x=alt.expr.cos(alt.datum.t * alt.expr.PI / 50),
y=alt.expr.sin(alt.datum.t * alt.expr.PI / 25)
)
Выражения Altair формируют допустимые выражения Vega. При таком подходе интерпретатор Python проверяет синтаксис, а автодополнение модуля expr помогает находить доступные функции и константы.
Эти выражения также можно использовать при фильтрации данных, которую мы рассмотрим далее.
Параметры преобразования
Метод Chart.transform_calculate основан на классе CalculateTransform, который поддерживает следующие параметры:
Нажмите, чтобы показать таблицу
| Свойство | Тип | Описание |
|---|---|---|
as | FieldName | Поле для хранения вычисленного значения формулы. |
calculate | string | Строка с выражением. Переменная |