gpt4 book ai didi

altair - 如何根据 Altair 图表中的选择对值进行排序?

转载 作者:行者123 更新时间:2023-12-04 08:39:59 29 4
gpt4 key购买 nike

给定一个交互式面积图,如下所示:

import altair as alt
from vega_datasets import data

source = data.iowa_electricity()
selection = alt.selection(type='multi', fields=['source'], bind='legend')

alt.Chart(source).mark_area().encode(
x="year:T",
y="net_generation:Q",
color="source:N",
opacity=alt.condition(selection, alt.value(1), alt.value(0.1))
).add_selection(selection)
我想先对选定的值进行排序,以便它们从底部堆叠起来,而不是像下面的示例那样“悬而未决”:
enter image description here
但是,我看不出如何在转换中表达这一点。唯一有效的是 transform_filter(selection)但这完全删除了未选择的值。
这是不可能的还是我错过了什么?

最佳答案

一种方法是访问 calculate transform 中的选择内容。 ,使用 vega expression查找当前列是否在选择中。此时,您可以将顺序设置为这种编码:

import altair as alt
from vega_datasets import data

source = data.iowa_electricity()
selection = alt.selection(type='multi', fields=['source'], bind='legend')

alt.Chart(source).add_selection(
selection
).transform_calculate(
order=f"indexof({selection.name}.source || [], datum.source)",
).mark_area().encode(
x="year:T",
y="net_generation:Q",
color="source:N",
opacity=alt.condition(selection, alt.value(1), alt.value(0.1)),
order=alt.Order("order:N", sort='descending'),
).add_selection(selection)
enter image description here

关于altair - 如何根据 Altair 图表中的选择对值进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64625557/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com