You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:22:07