Слайдер Logarithmi c на Альтаире - PullRequest
1 голос
/ 29 апреля 2020

Альтаир предлагает ползунки с равномерно распределенными значениями. Однако возможно ли иметь произвольные значения, на которые отображается ползунок? Особенно меня интересует ползунок logarithmi c со значениями, такими как 1, 10, 100 (т.е. 1 на левом конце, 10 в середине, 100 на правом конце ползунка).

Пример того, что я ищу, может быть найден в этом JavaScript связанном ответе (который имеет хорошую живую демонстрацию).

Кажется, что возможно с Matplotlib . (ОБНОВЛЕНИЕ: Это на самом деле не очень хороший пример. Пожалуйста, посмотрите только на пример JavaScript.) Возможно ли это и с Altair?

1 Ответ

1 голос
/ 29 апреля 2020

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

import altair as alt

slider = alt.binding_range(min=0, max=10, step=1, name='log(C)')
sel = alt.selection_single(name="sel", fields=['logC'],
                           bind=slider, init={'logC': 0})

alt.Chart(
    alt.sequence(0, 100, 1, 'x')
).transform_calculate(
    y=alt.datum.x ** 2 / alt.expr.exp(sel.logC)
).mark_line().encode(
    x='x:Q',
    y=alt.Y('y:Q', title='x^2/C'),
).add_selection(
    sel
)

enter image description here

Вы можете попробовать это в интерактивном режиме здесь .

...