如何解决您可以在交互式 Altair 图中更改数据本身吗?
df = pd.DataFrame({
'xval': ['full','empty'],'yval': [25,75],})
slider = alt.binding_range(min=0,max=100,step=1,name='cutoff:')
selector = alt.selection_single(name="SelectorName",fields=['cutoff'],bind=slider,init={'cutoff': 25})
(
alt.Chart(df)
.mark_bar()
.encode(
x='xval',y='yval',)
.properties(title='Glass %')
.add_selection(
selector
)
)
我希望能够拖动滑块并让它更改已满(和空)的百分比。类似的东西:
...
.encode(
x='xval',y=alt.condition(
alt.datum.xval == 'full','xval',100-'xval'
)
)
...
...但这不合法。 altair 是否支持这种类型的交互?我在 the docs 中没有看到类似的东西。
解决方法
您可以在计算转换中引用选择器值;尝试这样的事情:
(
alt.Chart(df)
.transform_calculate(
yval = "datum.xval == 'full' ? SelectorName.cutoff : 100 - SelectorName.cutoff"
)
.mark_bar()
.encode(
x='xval',y=alt.Y('yval',scale={'domain': [0,100]})
)
.properties(title='Glass %')
.add_selection(
selector
)
)
,
您可以使用带有选择器值的转换过滤器:
(
alt.Chart(df)
.mark_bar()
.encode(
x='xval',y='yval',)
.properties(title='Glass %')
.add_selection(selector)
.transform_filter(alt.datum.yval < selector.cutoff)
)
It is briefly mentioned at the end of this section of the docs.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。