Bokeh RangeSlider не соблюдает размер шага - PullRequest
0 голосов
/ 22 мая 2019

У меня размер шага 100, но ползунок перемещается с шагом 300.

Я использую боке == 1.0.2

from bokeh.io import output_file, show
from bokeh.layouts import widgetbox, gridplot, column
from bokeh.models.widgets import RangeSlider
from bokeh.models import Panel

output_file("range_slider.html")

range_slider = RangeSlider(start=-100, end=70000, value=(-100,70000), step=100, title="Stuff")


controls = widgetbox(range_slider)


show(controls)

1 Ответ

1 голос
/ 22 мая 2019

Ваш код отлично работает с Bokeh v1.1.0, если вы указали соответствующую ширину ползунка, например, width = 701.

Правда состоит в том, что фактическое значение шага зависит от ширины пикселя ползунка .

Если вы хотите, чтобы ползунок точно соответствовал вашему шагуРазмер, который необходимо обеспечить, чтобы ширина ползунка в пикселях равнялась значению диапазона, деленному на размер шага.

Обратите внимание, что вы не указываете ширину ползунка, которая в Bokeh v1.1.0 по умолчанию равна 300 пикселям.Для диапазона start=-100, end=70000 и step = 100 это означает 701 различных значений , которые должны быть сопоставлены с 300 точками .В результате получается значение 233 на 1 пиксель, которое Bokeh округляет до 200 или 300 за шаг, чтобы сохранить правильное отображение значений и сопоставить начальные / конечные значения.

Таким образом, два ползунка с одинаковым началом /Конечные / пошаговые значения будут иметь разные фактические значения шага в зависимости от ползунка width

from bokeh.io import show
from bokeh.models import Column, RangeSlider

range_slider1 = RangeSlider(start=-100, end=70000, value=(-100,70000), step=100, title="Stuff", width = 701)
range_slider2 = RangeSlider(start=-100, end=70000, value=(-100,70000), step=100, title="Stuff", width = 300)

controls = Column(range_slider1, range_slider2)

show(controls)
...