Search code examples
pythonpython-3.xbokeh

Time range slider for Bokeh


Does Bokeh has time range slider functionality like daterangeslider()?, I want a time range slider of 24 hours with start time as 00:00:00 and end time time as 00:00:00 for next day, tried to use daterangeslider() but got the error: function takes at most 3 arguments (6 given), looks like daterangeslider() does not support time range. Any way to achieve this in Bokeh?

DateRangeSlider(title='Time Range: ', start=date(2020, 1, 1, 0, 0, 0),
end=date(2020, 1, 2, 0, 0, 0), value=(date(2020, 1, 1, 0, 0, 0), date(2020, 1, 2, 0, 0, 0)), step=1)

Solution

  • The error that you're seeing is due to the date constructor accepting only 3 arguments. You probably wanted to use datetime.

    As of Bokeh 0.14, Date instances also accept datetime so something like this works. Note that I also had to change the format because by default the slider shows only the date.

    from datetime import datetime, timedelta
    
    from bokeh.models import DateRangeSlider
    
    start = datetime.now()
    end = start + timedelta(days=1)
    slider = DateRangeSlider(value=(start, end), start=start, end=end, format="%x, %X")