Altair - 使用滑块绑定筛选范围

3
我希望能够实现类似于这个例子的效果,但是我想用滑块作为transform_filter中的截止点(即小于滑块值的数值)而不是选择离散值。
目前我的代码大致如下:
import altair as alt
from altair.expr import datum

slider = alt.binding_range(min=data.refill_time.min().value,
                           max=data.refill_time.max().value,
                           step = 1)
select_date = alt.selection_single(name='refill_time',
                                   fields=['refill_time'],
                                   bind=slider)

refills = alt.Chart(data).mark_bar(
).transform_filter(
    datum.refill_time < select_date.ref()
).encode(
    alt.X('refill_count:Q',
    alt.Y('group:N')
).add_selection(
    select_date
)

display(refills)

我尝试查看 slider 的数据,但没有找到任何返回其当前值的字段(.ref()尝试)。 我还尝试将 selection_single 更改为 _multi_interval,但是我只收到无效规范错误-我找不到任何定义 binding_range 的方法,使其对选择有意义。

这在altair中是否可能?

1个回答

3
尝试使用以下过滤表达式:
transform_filter(
    "datum.refill_time < refill_time_refill_time"
)

这里的奇怪看起来的 "refill_time_refill_time" 是由选择名称 "refill_time" 和字段名称 "refill_time" 组成。虽然我不确定是否正确,但无论如何它应该是“滑块文本”,因此在链接的示例中它将是“year_year”。


就我所知,可以不使用笨拙的“refill_time_refill_time”来完成这个操作。你应该写成transform_filter(select_date.refill_time)(注意:没有双引号!)。不幸的是,原帖没有提供数据,所以我无法使用原始示例进行测试,但我在我的本地数据集上有类似的东西。这是受以下启发的:https://github.com/altair-viz/altair/issues/2008#issuecomment-621428053 - Ken Lin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接