聚合#
在 Altair 中有两种方式可以聚合数据:在编码本身中进行,或者使用顶层聚合转换。
字段定义的 aggregate 属性可用于计算数据组的聚合摘要统计量(例如,中位数、最小值、最大值)。
如果在指定的编码通道中至少有一个字段包含 aggregate 属性,则生成的可视化将显示聚合数据。在这种情况下,所有未指定聚合函数的字段在聚合过程中都将被视为分组字段 (group-by fields)。
例如,以下条形图按气缸数分组,聚合了 acceleration
的均值。
import altair as alt
from vega_datasets import data
cars = data.cars.url
alt.Chart(cars).mark_bar().encode(
y='Cylinders:O',
x='mean(Acceleration):Q',
)
Altair 的简写字符串
# ...
x='mean(Acceleration):Q',
# ...
为了方便而提供,等同于以下较长的形式
# ...
x=alt.X(field='Acceleration', aggregate='mean', type='quantitative'),
# ...
有关简写编码规范的更多信息,请参阅分箱与聚合。
可以使用显式计算的聚合来显示相同的图表,方法是使用 transform_aggregate()
方法
alt.Chart(cars).mark_bar().encode(
y='Cylinders:O',
x='mean_acc:Q'
).transform_aggregate(
mean_acc='mean(Acceleration)',
groupby=["Cylinders"]
)
有关可用聚合的列表,请参阅分箱与聚合。
转换选项#
transform_aggregate()
方法基于 AggregateTransform
类构建,该类具有以下选项
点击显示表格
属性 |
类型 |
描述 |
---|---|---|
aggregate |
array( |
定义要聚合的字段的对象数组。 |
groupby |
array( |
用于分组的数据字段。如果未指定,将使用包含所有数据对象的单个组。 |
AggregatedFieldDef
对象具有以下选项
点击显示表格
属性 |
类型 |
描述 |
---|---|---|
as |
用于每个聚合字段的输出字段名。 |
|
field |
用于计算聚合函数的数据字段。除 |
|
op |
要应用于字段的聚合操作(例如, |