python - Altair:使用 binding_select 时选择所有值
问题描述
首次呈现图表时,未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
)
解决方案
您需要None
在下拉选择中包含该选项,以在未选择任何内容时调用默认行为。您可以设置一个标有“全部”的标签,以便清楚该选项的作用:
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
)
推荐阅读
- node.js - nodejs sequlize where condition id noteequal to check in
- php - 如何在 CentOS 7.2 Linode 服务器上将 PHP 7.0 升级到 PHP 7.1
- java - 日历返回错误的一年中的一周
- java - 服务器 IBM WebSphere 无法在本地机器上启动
- java - 线程安全和线程兼容有什么区别?
- c# - 比较两个 List 并返回一个新列表,其中仅包含具有不同值的列
- ios - iOS如何检查向服务器发送了多少请求,解析swift 4
- powerbi - 基于月份的 DAX 计算度量
- google-cloud-platform - 我已经通过 App Engine 在 Google Cloud 上的 Production 上部署了测试应用程序,但 URL 仍然可以访问
- video - HDevelop 录制视频