python - Altair - 通过滑块绑定过滤范围
问题描述
我正在尝试实现与此示例类似的东西,除了不使用滑块来选择离散值之外,我希望它用作 a 中的截止点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()
尝试)。我也尝试将 to 更改selection_single
为_multi
,_interval
但我遇到了无效的规范错误 - 我找不到任何方法来定义对binding_range
选择有意义的。
这可能在 altair 中吗?
解决方案
尝试以下过滤器表达式:
transform_filter(
"datum.refill_time < refill_time_refill_time"
)
其中奇怪的“refill_time_refill_time”是由选择名称“refill_time”和字段名称“refill_time”构建的。虽然我不是 100% 确定那是否正确,但无论如何它应该是“滑块文本”,所以在链接的示例中它将是“year_year”。
推荐阅读
- google-kubernetes-engine - 无法使用代理与谷歌云 sql 实例建立通信
- java - 是否可以对两个不同的类使用类级别的自定义约束注释
- java - 导致 IOException 的俄语
- ruby-on-rails - Rails 控制器中未初始化的常量错误
- javascript - vue-chartjs 未在 array.push() 上更新
- ios - swift:更改导航栏的颜色
- powershell - .bat 文件无法运行 powershell 7
- python - 优化 Cython 中的 Python 字典查找
- ruby-on-rails - 当错误消息显示在rails中时如何获取date_field值?
- laravel - 当我使用 laravel 禁用开关时,我不想显示弹出错误消息