计算#
计算转换允许用户在数据集中定义新字段,这些字段使用表达式语法从其他字段计算得出。
举个简单的例子,这里我们使用带有简单输入序列的数据,并计算一些三角函数量。
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 风格的操作,可用于从现有字段计算出新字段。
为了简化在 Python 中构建这些 Vega 表达式的过程,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
子模块的 Tab 补全功能来探索可用的函数和常量。
在构建 过滤器时,也可以使用这些表达式,我们将在下一节中看到。
转换选项#
transform_calculate()
方法基于 CalculateTransform
类构建,该类具有以下选项