能否修改Altair交互式图例多选的默认按键(从Shift改为其他)
更改Altair交互式图例的多选择触发按键
要把Altair交互式图例的多选择触发键从默认的Shift改成Ctrl,直接自定义多选选择器的触发条件就能解决,还能避免Shift+点击时选中页面文本的问题。
核心思路:在创建
selection_multi选择器时,通过toggle参数绑定click事件并加上event.ctrlKey的条件,指定只有按住Ctrl点击图例时才触发多选切换。示例代码(基于官方交互式图例示例修改):
import altair as alt from vega_datasets import data source = data.cars() # 自定义多选选择器,绑定Ctrl+点击触发多选 brush = alt.selection_multi( fields=['Origin'], toggle={"event": "click[event.ctrlKey]"}, empty='all' ) points = alt.Chart(source).mark_point().encode( x='Horsepower:Q', y='Miles_per_Gallon:Q', color=alt.condition(brush, 'Origin:N', alt.value('lightgray')) ).add_params( brush ) legend = alt.Chart(source).mark_point().encode( y=alt.Y('Origin:N', axis=alt.Axis(orient='right')), color=alt.condition(brush, 'Origin:N', alt.value('lightgray')) ).add_params( brush ) points | legend
这样设置后,按住Ctrl点击图例项就能多选或取消选中,单独点击会切换单选状态,同时不会触发浏览器默认的文本选中行为,完美解决原问题里的Shift键冲突。
内容的提问来源于stack exchange,提问作者DanMacGom
相关产品推荐
相关产品推荐

