Фильтры множественного преобразования, Альтаир
Есть ли способ заставить три диаграммы работать вместе, когда выбор одного из них обновляет другой?
Это представляется возможным только для двух графиков, поскольку, как я вижу, вы можете прикрепить только один фильтр преобразования.
например
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 ответ
Решение
Вы можете добавить любое количество преобразований фильтра в диаграмму, вызвав transform_filter
многократно. Например:
chart.transform_filter(
selection1
).transform_filter(
selection2
)
Все преобразования будут применены в порядке их добавления на график.
Другой возможный подход заключается в использовании логической логики для объединения нескольких выборок в одном преобразовании фильтра; например
chart.transform_filter(
selection1 & selection2
)
В вашем случае это должно иметь такой же эффект.