Altair复选框默认

问题描述 投票:3回答:1

我正在尝试使用复选框创建Altair图表。默认情况下,取消选中该复选框,但我希望检查默认值。 HTML复选框具有“checked”属性来实现此目的,但我不知道如何通过Altair API传达这一点。这可能吗?

在下面的示例中,“A”和“B”系列开始着色,并且未选中复选框。所需的行为将是要检查的框,并且当它们未被选中时,相应的系列将变灰。

data = pd.DataFrame(
    {
        "Block":("A", "A", "B", "A", "B", "A"),
        "X":(10, 15, 11, 30, 45, 9),
        "Y":(1.1, 10, 3.5, 5, 10, 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.Color("Block:N"), 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",
    y=alt.Y(
        "Y:Q", scale=alt.Scale(type="log")
    ),
    color=b_cond
).add_selection(b_select)
(a_chart + b_chart)

Example chart

python data-visualization visualization altair
1个回答
2
投票

Altair版本2(当前版本)不支持选择默认值。

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

a_select = alt.selection_single(
    fields=["Block"], bind=a_filter, name="A", init={'Block': 'A'}
)
b_select = alt.selection_single(
    fields=["Block"], bind=b_filter, name="B", init={'Block': 'B'}
)
© www.soinside.com 2019 - 2024. All rights reserved.