Я пытаюсь создать диаграмму, где можно выбрать комбинации разных столбцов данных, установив флажки. Однако я не всегда хочу отображать флажки для всех столбцов. Поэтому я хочу добавить выборки в диаграмму «динамически c».
Я хочу сделать то, чего хочу sh, - это сделать предварительный выбор категорий, которые я хочу визуализировать (это делается до того, как будет создана диаграмма альтаира). Эти категории затем добавляются как флажки в Altair. Однако единственный способ найти это - добавить их жестко закодированным способом, например «sel1 [0] & sel1 [1] & sel1 [2] & sel1 [3] & sel1 [4]» в приведенном ниже коде. :
sel1 = [
alt.selection_single(
bind=alt.binding_checkbox(name=field),
fields=[field],
init={field: False}
)
for field in category_selection
]
transform_args = {str(col): f'toBoolean(datum.{col})' for col in category_selection}
alt.Chart(df1).transform_calculate(**transform_args).mark_point(filled=True).encode(
x='dim1',
y='dim2',
opacity=alt.condition(
sel1[0] & sel1[1] & sel1[2] & sel1[3] & sel1[4],
alt.value(1), alt.value(0)
)
).add_selection(
*sel1
)
Я пытался сделать это так:
alt.Chart(df1).transform_calculate(**transform_args).mark_point(filled=True).encode(
x='dim1',
y='dim2',
opacity=alt.condition(
{'and': sel[:2]},
alt.value(1), alt.value(0)
)
).add_selection(
*sel1[:2]
)
Но это не работает.
Я не могу понять, как добиться как то так с альтаиром. Может ли кто-нибудь привести пример того, как сделать это с помощью флажков, или помочь мне найти другой метод для достижения той же цели?
TLDR: я в основном хочу поддерживать переменное количество категорий, которое также поддерживает возможность создания комбинаций из категорий.
РЕДАКТИРОВАТЬ: Пытался сделать более ясным, что я пытаюсь достичь с помощью кода.