散景范围滑块不遵守步长

时间:2019-05-22 18:45:12

标签: python bokeh

我的步长为100,但是滑块以300为增量移动。

我正在使用bokeh == 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 个答案:

答案 0 :(得分:1)

如果您指定适当的滑块宽度(例如, width = 701

事实是,实际步长值取决于滑杆像素宽度值。

如果希望滑块与步长完全匹配,则需要确保滑块的宽度(以像素为单位)等于范围值除以步长。

请注意,您未指定滑块宽度,在Bokeh v1.1.0中默认为300像素。对于范围start=-100, end=70000step = 100,这意味着 701个不同的值,必须将其映射到 300点。这样一来,每1个像素的值为233,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)