Выделение нескольких линий
Невидимое разбиение Вороного определяет ближайшую точку при наведении и выделяет содержащую её линию. Пример адаптирован из диаграммы Vega-Lite автора amitkaps.
import altair as alt
from altair.datasets import data
source = data.stocks()
highlight = alt.selection_point(on='pointerover', fields=['symbol'], nearest=True)
base = alt.Chart(source).encode(
x='date:T',
y='price:Q',
color='symbol:N'
)
points = base.mark_circle().encode(
opacity=alt.value(0)
).add_params(
highlight
).properties(
width=600
)
lines = base.mark_line().encode(
size=alt.when(~highlight).then(alt.value(1)).otherwise(alt.value(3))
)
points + lines
import altair as alt
from altair.datasets import data
source = data.stocks()
highlight = alt.selection_point(on='pointerover',
fields=['symbol'], nearest=True)
base = alt.Chart(source).encode(
x='date:T',
y='price:Q',
color='symbol:N'
)
points = base.mark_circle().encode(
opacity=alt.value(0)
).add_params(
highlight
).properties(
width=600
)
lines = base.mark_line().encode(
size=alt.when(~highlight).then(alt.value(1)).otherwise(alt.value(3))
)
points + lines
Подробнее в связанных разделах документации: