Python 当altair图表中两个选择器都处于活动状态时,仅显示两个选择器的交点
我制作了一个Altair可视化,其中包含两个选择器,它们位于我的数据帧的两个不同变量上 当我尝试使用一个时,效果很好-> 当我使用另一个选择器时,它也可以正常工作-> 但是,当我使用两个选择器时,我只想显示两个选择器的交叉点,而不是此处显示的-> 是否可以在只有一个选择器处于活动状态时显示每个选择器的选择,以及在两个选择器都处于活动状态时显示交叉点 编辑:我用示例数据为这个问题添加了代码,希望它更容易重现Python 当altair图表中两个选择器都处于活动状态时,仅显示两个选择器的交点,python,visualization,altair,vega-lite,vega,Python,Visualization,Altair,Vega Lite,Vega,我制作了一个Altair可视化,其中包含两个选择器,它们位于我的数据帧的两个不同变量上 当我尝试使用一个时,效果很好-> 当我使用另一个选择器时,它也可以正常工作-> 但是,当我使用两个选择器时,我只想显示两个选择器的交叉点,而不是此处显示的-> 是否可以在只有一个选择器处于活动状态时显示每个选择器的选择,以及在两个选择器都处于活动状态时显示交叉点 编辑:我用示例数据为这个问题添加了代码,希望它更容易重现 import altair as alt from vega_datasets impor
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], mouseup] > mousemove",
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”选择器时选择的交点
非常感谢您的支持 听起来,在每个选择中设置
resolve='intersect'
可能是您想要的。如果这不起作用,请提供您用于new_df
的数据,或使用示例数据重现此问题。我使用示例数据重现了此问题,但使用resolve=“intersect”无法解决我的问题。有办法吗?非常感谢!感谢您更新示例resolve
在这里没有帮助,抱歉,我最初以为您有多个子批次,每个批次中都有单独的选择。选择的默认行为是在不使用选择时选择所有内容(empty='all'
)。从理论上讲,这意味着使用条件(alex&morgan)
,就足够了,因为当您使用其中一个选项时,另一个选项应保持不斜体,并且所有值都已选定。在实践中,似乎只要使用一个,两个都会被清除,设置clear=False
也没有帮助。。。。。。这可能是无意的,因此请在VegaLite问题跟踪器上检查是否存在任何问题。您也可以尝试为选择设置init
参数,但我尝试了很短时间,运气不太好。