python-Altair复选框默认

我正在尝试创建带有复选框的Altair图表.默认情况下,该复选框处于未选中状态,但我希望选中该默认复选框. HTML复选框具有“ checked”属性来实现此目的,但我不知道如何通过Altair API传达此信息.这可能吗?

在下面的示例中,“ A”和“ B”系列开始着色,并且未选中复选框.期望的行为是要选中这些框,而当未选中它们时,相应的系列将显示为灰色.

data = pd.DataFrame(
    {
        "Block":("A","A","B","A"),"X":(10,15,11,30,45,9),"Y":(1.1,10,3.5,5,20),}
)

a_data = data.loc[data["Block"] == "A"]
b_data = data.loc[data["Block"] == "B"]
a_filter = alt.binding_checkBox()
b_filter = alt.binding_checkBox()
a_select = alt.selection_single(
    fields=["Block"],bind=a_filter,name="A"
)
b_select = alt.selection_single(
    fields=["Block"],bind=b_filter,name="B"
)
a_cond = alt.condition(
    a_select,alt.Color("Block:N"),alt.value("lightgray")
)
b_cond = alt.condition(
    b_select,alt.value("lightgray")
)
a_chart = alt.Chart(a_data).mark_point(filled=True).encode(
    x="X:Q",y=alt.Y(
        "Y:Q",scale=alt.Scale(type="log")
    ),color=a_cond
).add_selection(a_select)
b_chart = alt.Chart(b_data).mark_point(filled=True).encode(
    x="X:Q",color=b_cond
).add_selection(b_select)
(a_chart + b_chart)

Example chart

最佳答案
Altair版本2(当前版本)不支持选择默认值.

Altair版本3(即将发布)使用init参数支持选择默认值,您可以像这样使用它:

a_select = alt.selection_single(
    fields=["Block"],name="A",init={'Block': 'A'}
)
b_select = alt.selection_single(
    fields=["Block"],name="B",init={'Block': 'B'}
)

相关文章

在这篇文章中,我们深入学习了XPath作为一种常见的网络爬虫技巧。XPath是一种用于定位和选择XML文档中特...
祝福大家龙年快乐!愿你们的生活像龙一样充满力量和勇气,愿你们在新的一年里,追逐梦想,勇往直前,不...
今天在爬虫实战中,除了正常爬取网页数据外,我们还添加了一个下载功能,主要任务是爬取小说并将其下载...
完美收官,本文是爬虫实战的最后一章了,所以尽管本文着重呈现爬虫实战,但其中有一大部分内容专注于数...
JSON是一种流行的数据传输格式,Python中有多种处理JSON的方式。官方的json库是最常用的,它提供了简单...
独立样本T检验适用于比较两组独立样本的均值差异,而配对T检验则适用于比较同一组样本在不同条件下的均...