Altair:使用binding_select时如何选择所有值

3

当图表首次呈现时,binding_select()被设置为无选中/全部选中,因此显示所有值。 使用下拉菜单进行选择后,如何再次选择所有值?

在下面的示例中,首先显示所有数据点。 然后进行选择,仅显示与该位置对应的数据点。 如何返回到所有数据点在图表中显示的原始状态。

source = pd.DataFrame({'Position':['Center','Center','Power Forward','Point Guard','Point Guard','Shooting Guard','Power Forward','Point Guard','Point Guard'],
                      'Points_Per_Game':[12 , 13, 15 , 21, 22, 9, 8, 5, 7],
                      'Games_Played':[22, 9, 8, 5, 7 , 12 , 13, 15 , 21]})

position_dropdown = alt.binding_select(options=list(source.Position.unique()))
position_selection = alt.selection_single(fields=['Position'], bind=position_dropdown, name='Player ')

alt.Chart(source).mark_circle(size=100).encode(
    x='Games_Played:N',
    y='Points_Per_Game:N',

).properties(selection=interval).add_selection(
    position_selection,
).transform_filter(
    position_selection
)

双击图表中的任意位置。 - Paulo Marques
1个回答

3

在下拉选择框中,需要包含选项 None,以便在未选择任何内容时调用默认行为。您可以设置一个标签,显示为 "All",以便清楚地说明该选项的作用:

source = pd.DataFrame({'Position':['Center','Center','Power Forward','Point Guard','Point Guard','Shooting Guard','Power Forward','Point Guard','Point Guard'],
                      'Points_Per_Game':[12 , 13, 15 , 21, 22, 9, 8, 5, 7],
                      'Games_Played':[22, 9, 8, 5, 7 , 12 , 13, 15 , 21]})

position_dropdown = alt.binding_select(
    options=[None] + list(source.Position.unique()), labels = ['All'] + list(source.Position.unique()))
position_selection = alt.selection_single(fields=['Position'], bind=position_dropdown, name='Player ')

alt.Chart(source).mark_circle(size=100).encode(
    x='Games_Played:N',
    y='Points_Per_Game:N',
).add_selection(
    position_selection,
).transform_filter(
    position_selection
)

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接