在 Altair 中,相等条件不起作用

In Altair equality condition doesn't work

我正在尝试在 Altair 中构建散点图,其中点的颜色由滑块确定。在此示例中,我只想将圆柱体与滑块选择的圆柱体相同的汽车涂成橙色。 Altair 条件中的运算符 == 不起作用。我尝试了不同的运算符,有效的是 > >= < <= 无效的是 == !=

这是一个无效代码:

slider = alt.binding_range(min=3, max=8, step=1, name='cyl')
selection = alt.selection_single(fields=['Cylinders'],
                                bind=slider, init={'Cylinders': 3})

alt.Chart(cars).mark_circle(size=60).encode(
    x="Miles_per_Gallon",
    y="Displacement",
    color=alt.condition(alt.datum.Cylinders == selection.Cylinders, 
                        alt.value('#f26414'), alt.value('lightgray'),
                       ),
).add_selection( 
    selection
)

我怎样才能让平等发挥作用?

为了相等,您可以在不使用运算符的情况下检查点是否在选择中:

color=alt.condition(selection, alt.value('#f26414'), alt.value('lightgray'))