当两个选择器在 Altair 图中都处于活动状态时,仅显示两个选择器的交集

问题描述

我制作了一个 altair 可视化,其中在我的数据帧的两个不同变量上包含 2 个选择器。

当我尝试使用它时效果很好 -> https://imgur.com/gallery/bDfRV9q

当我使用另一个选择器时,它也能正常工作 -> https://imgur.com/gallery/ycCMy20

但是,当我使用两个选择器时,我只想显示两个选择器的交集,而不是此处显示内容 -> https://imgur.com/gallery/lfcqcY9

是否可以在只有一个选择器处于活动状态时显示每个选择器的选择,并在两者都处于活动状态时显示交集?

编辑:我使用示例数据将代码添加到此问题中,因此希望它更容易重现。

import altair as alt
from vega_datasets import data

cars = data.cars.url

alex = alt.selection_interval(
    on="[mousedown[event.altKey],mouseup] > mousemove",name='alex',resolve='intersect'
)
morgan = alt.selection_interval(
    on="[mousedown[event.shiftKey],mark=alt.BrushConfig(fill="#fdbb84",fillOpacity=0.5,stroke="#e34a33"),name='morgan',resolve='intersect'
)

alt.Chart(cars).mark_rect().encode(
    x='Cylinders:O',y='Origin:O',color=alt.condition((alex & ~morgan) | (~alex & morgan) | (alex & morgan),'count()',alt.ColorValue("grey"))
).add_selection(
    alex,morgan
).properties(
    width=300,height=180
)

我希望图表在仅选择“alex”选择器时显示“alex”的选择,当仅选择“morgan”时显示“morgan”,并且当两个选择器都选择“alex”和“morgan”时仅显示交集"被选中。

非常感谢您提前!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)