要对Altair分层图表进行求和,可以使用Altair的聚合函数和transform_aggregate()函数。下面是一个示例代码,演示如何对一个分层柱状图进行求和:
import altair as alt
from vega_datasets import data
# 加载数据集
source = data.barley()
# 创建分层柱状图
chart = alt.Chart(source).mark_bar().encode(
x='variety:N',
y='sum(yield):Q',
color='site:N'
)
# 对图表进行求和
sum_chart = chart.transform_aggregate(
sum_yield='sum(yield)',
groupby=['variety', 'site']
).transform_fold(['sum_yield'], as_=['measure', 'value'])
# 显示图表
sum_chart
在上面的代码中,我们首先加载了一个名为"barley"的数据集。然后,我们创建了一个分层柱状图,x轴表示"variety"(品种),y轴表示"yield"(产量),颜色表示"site"(地点)。
接下来,我们使用transform_aggregate()函数对图表进行求和操作。我们将"sum(yield)"作为聚合函数,同时指定"variety"和"site"作为分组依据。这样,我们就会得到一个包含"variety"、"site"和"sum_yield"的新数据集。
最后,我们使用transform_fold()函数将"sum_yield"字段折叠成两个新的字段"measure"和"value",这样我们就可以在图表中使用这些新的字段。
最后一行代码用于显示求和后的图表。
希望这个示例能帮助到你!
上一篇:Altair返回单个选择器错误