Альтаир - диапазон фильтра по привязке слайдера - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь добиться чего-то похожего на в этом примере , за исключением того, что вместо использования ползунка для выбора дискретных значений я бы хотел, чтобы он служил точкой отсечения в transform_filter (то есть значения < значение ползунка).

Прямо сейчас у меня есть что-то вроде этого:

import altair as alt
from altair.expr import datum

slider = alt.binding_range(min=data.refill_time.min().value,
                           max=data.refill_time.max().value,
                           step = 1)
select_date = alt.selection_single(name='refill_time',
                                   fields=['refill_time'],
                                   bind=slider)

refills = alt.Chart(data).mark_bar(
).transform_filter(
    datum.refill_time < select_date.ref()
).encode(
    alt.X('refill_count:Q',
    alt.Y('group:N')
).add_selection(
    select_date
)

display(refills)

Я попытался просмотреть данные из slider, но не смог найти ни одного поля, возвращающего его текущее значение (попытка .ref()). Я также попытался изменить selection_single на _multi и _interval, но я только что получил недопустимые ошибки спецификации - я не смог найти способ определить binding_range, который имел бы смысл для выбора.

Возможно ли это на Альтаире?

1 Ответ

0 голосов
/ 07 декабря 2018

Попробуйте следующее выражение фильтра:

transform_filter(
    "datum.refill_time < refill_time_refill_time"
)

где странно выглядящий «refill_time_refill_time» создается именем выбора «refill_time» и именем поля «refill_time». Хотя я не уверен на 100%, правильно ли это, но в любом случае это должен быть «текст слайдера», поэтому в связанном примере это будет «year_year».

...