Altair 复选框默认值
Altair checkbox default
我正在尝试创建带有复选框的 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
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'}
)
我正在尝试创建带有复选框的 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
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'}
)