DatetimeRangeSlider#

Open this notebook in Jupyterlite | Download this notebook from GitHub (right-click to download).


import datetime as dt
import panel as pn

pn.extension()

The DateRangeSlider widget allows selecting a date range using a slider with two handles.

Discover more on using widgets to add interactivity to your applications in the how-to guides on interactivity. Alternatively, learn how to set up callbacks and (JS-)links between parameters or how to use them as part of declarative UIs with Param.

Parameters:#

For details on other options for customizing the component see the layout and styling how-to guides.

Core#

  • start (datetime): The range’s lower bound

  • end (datetime): The range’s upper bound

  • step (int): Step in milliseconds, default is 1 minute (60.000 ms)

  • value (tuple): Tuple of upper and lower bounds of the selected range expressed as datetime types

  • value_throttled (tuple): Tuple of upper and lower bounds of the selected range expressed as datetime types throttled until mouseup

Display#

  • bar_color (color): Color of the slider bar as a hexadecimal RGB value

  • callback_policy (str, DEPRECATED): Policy to determine when slider events are triggered (one of ‘continuous’, ‘throttle’, ‘mouseup’)

  • callback_throttle (int): Number of milliseconds to pause between callback calls as the slider is moved

  • direction (str): Whether the slider should go from left to right (‘ltr’) or right to left (‘rtl’)

  • disabled (boolean): Whether the widget is editable

  • name (str): The title of the widget

  • orientation (str): Whether the slider should be displayed in a ‘horizontal’ or ‘vertical’ orientation.

  • tooltips (boolean): Whether to display tooltips on the slider handle


The slider start and end can be adjusted by dragging the handles and whole range can be shifted by dragging the selected range.

datetime_range_slider = pn.widgets.DatetimeRangeSlider(
    name='Datetime Range Slider',
    start=dt.datetime(2017, 1, 1), end=dt.datetime(2019, 1, 1),
    value=(dt.datetime(2017, 1, 1), dt.datetime(2018, 1, 10)),
    step=10000
)

datetime_range_slider

DatetimeRangeSlider.value returns a tuple of datetime values that can be read out and set like other widgets:

datetime_range_slider.value
(datetime.datetime(2017, 1, 1, 0, 0), datetime.datetime(2018, 1, 10, 0, 0))

Controls#

The DatetimeRangeSlider widget exposes a number of options which can be changed from both Python and Javascript. Try out the effect of these parameters interactively:

pn.Row(datetime_range_slider.controls(jslink=True), datetime_range_slider)

Open this notebook in Jupyterlite | Download this notebook from GitHub (right-click to download).