堆叠#
堆叠转换允许您计算与编码的堆叠版本相关的值。例如,考虑这个堆叠条形图
import altair as alt
from vega_datasets import data
source = data.barley()
alt.Chart(source).mark_bar().encode(
column='year:O',
x='yield:Q',
y='variety:N',
color='site:N'
).properties(width=220)
隐式地,这些数据被分组并堆叠,但是如果您想直接访问那些堆叠的值呢?我们可以使用堆叠转换手动构建相同的图表
import altair as alt
from vega_datasets import data
source = data.barley()
alt.Chart(source).transform_stack(
stack='yield',
as_=['yield_1', 'yield_2'],
groupby=['year', 'variety'],
sort=[alt.SortField('site', 'descending')]
).mark_bar().encode(
column='year:O',
x=alt.X('yield_1:Q').title('yield'),
x2='yield_2:Q',
y='variety:N',
color='site:N',
tooltip=['site', 'yield', 'variety']
).properties(width=220)
请注意,现在条形图是显式地绘制在 x 和 x2 编码中计算和指定的值之间。
转换选项#
transform_stack()
方法基于 StackTransform
类构建,该类具有以下选项
点击显示表格
属性 |
类型 |
描述 |
---|---|---|
as |
输出字段名称。这可以是字符串,也可以是包含两个元素的字符串数组,分别表示堆叠开始和堆叠结束字段的名称。如果提供单个字符串(例如 |
|
groupby |
array( |
用于分组的数据字段。 |
offset |
[‘zero’, ‘center’, ‘normalize’] |
标记的堆叠模式。可选值包括 默认值: |
sort |
array( |
确定堆叠图表中叶子顺序的字段。 |
stack |
被堆叠的字段。 |