Фильтры множественного преобразования, Альтаир - PullRequest
0 голосов
/ 03 октября 2018

Есть ли способ заставить, скажем, три диаграммы работать вместе, где выборка на одном из них обновляет другой?

Это кажется возможным только для двух графиков, поскольку, как я вижу,Вы можете прикрепить только один фильтр преобразования.

например,

brush = alt.selection(type='interval')
nationality_select = alt.selection(type='single', fields=['Nationality'])
club_select = alt.selection(type='single', fields=['Club_Position'])

points = alt.Chart().mark_circle().encode(
x='Acceleration',
y='Speed',
color=alt.condition(brush, 'Nationality:N', alt.value('lightgray')),
tooltip=['Club_Position', 'Name']
).add_selection(
    brush
).transform_filter(
    nationality_select
)

bars_nationality = alt.Chart().mark_bar().encode(
    color='Nationality',
    x='count(Nationality)',
    y=alt.Y('Nationality',
        sort=alt.SortField(field='count', order='descending', op='max')
    )
).properties(
    selection=nationality_select
).transform_filter(
    brush
)

bars_club_position = alt.Chart().mark_bar().encode(
    color='Club_Position',
    x='count(Club_Position)',
    y=alt.Y('Club_Position',
    sort=alt.SortField(field='count', order='descending', op='max')
    )
).properties(
    selection=club_select
).transform_filter(
    brush
)

alt.vconcat(points, bars_nationality, bars_club_position, d 
data=fifa.sample(2000))

Я не могу сделать это, например,

.transform_filter(
    brush, nationality_filter
)

Так есть ли способ добавитьмножественный

1 Ответ

0 голосов
/ 03 октября 2018

Вы можете добавить любое количество преобразований фильтра на график, вызывая transform_filter несколько раз.Например:

chart.transform_filter(
    selection1
).transform_filter(
    selection2
)

Все преобразования будут применяться в том порядке, в котором они добавлены к диаграмме.

Другой возможный подход заключается в использовании логической логики для объединения нескольких выборок в одномпреобразование фильтра;например,

chart.transform_filter(
    selection1 & selection2
)

В вашем случае это должно иметь тот же эффект.

...