Чтобы получить множественный выбор, собственную палитру и отсутствие легенды, просто укажите все это внутри color().
Рабочий код
import altair as alt
from vega_datasets import data
iris = data.iris()
click = alt.selection_multi(fields=['species'])
palette = alt.Scale(domain=['setosa', 'versicolor', 'virginica'],
range=['lightgreen', 'darkgreen', 'olive'])
alt.Chart(iris).mark_point().encode(
x='petalWidth',
y='petalLength',
color=alt.condition(click,
'species:N', alt.value('lightgray'),
scale=palette,
legend=None)
).properties(
selection=click
)
производит:
И если вы нажмете на любую точку, весь этот вид будет выбран и окрашен в соответствии с цветовым условием.(Выбранные точки принимают цвет от palette
, а невыбранные отображаются серым.)