Альтаир добавить выделение в слоистую диаграмму - PullRequest
1 голос
/ 10 апреля 2020

У меня есть код ниже. Но «выбор» не работает, как ожидалось. Когда точка выбрана, остальные линии отменяются. Но точки для выбранной линии также скрываются / исчезают.

Я, должно быть, что-то делаю не так. Это правильный способ добавить выделение на многоуровневую диаграмму?

import altair as alt
from vega_datasets import data

source = data.stocks()

selection1 = alt.selection_single()

line = alt.Chart(source).mark_line().encode(
    x='date',
    y='price',
    #color= 'symbol',
    color=alt.condition(selection1, 'symbol', alt.value('grey')),
    opacity=alt.condition(selection1, alt.value(0.8), alt.value(0.1)),
)

point = line.mark_point(size = 40, fill='white')

alt.layer(line, point).add_selection(selection1)

1 Ответ

0 голосов
/ 10 апреля 2020

По умолчанию при выборе выбираются только данные, непосредственно связанные с выбранной меткой. Если вы хотите, чтобы он применялся к большему набору данных, вы можете указать fields или encodings. В вашем случае это звучит так, как будто вы хотите, чтобы оно применялось ко всем данным с одинаковым symbol, поэтому вы можете сделать это:

selection1 = alt.selection_single(fields=['symbol'])

или, поскольку ваш символ соответствует цвету во всех случаях, эквивалентно Вы можете сделать это:

selection1 = alt.selection_single(encodings=['color'])
...