Альтаир - диапазон фильтра по привязке слайдера

1

Я пытаюсь достичь чего-то подобного этому примеру, но вместо того, чтобы использовать ползунок для выбора дискретных значений, я хотел бы, чтобы он служил точкой отсечки в 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 которая имела бы смысл для выбора.

Возможно ли это в битве?

Теги:
altair
vega-lite

1 ответ

0

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

transform_filter(
    "datum.refill_time < refill_time_refill_time"
)

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

  • 0
    Это работает, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню