import math
import panel as pn
pn.extension()
The EditableRangeSlider
widget allows selecting a floating-point range using a slider with two handles and for more precise control also offers a number input boxes.
For more information about listening to widget events and laying out widgets refer to the widgets user guide. Alternatively you can learn how to build GUIs by declaring parameters independently of any specific widgets in the param user guide. To express interactivity entirely using Javascript without the need for a Python server take a look at the links user guide.
For layout and styling related parameters see the customization user guide.
start
(float): The lower bound for the slider, can be overridden by a lower value
.end
(float): The upper bound for the slider, can be overridden by a higher value
.fixed_start
(float | None): A fixed lower bound for the slider and input, value
cannot exceed this.fixed_end
(float | None): A fixed upper bound for the slider and input, value
cannot exceed this.step
(float): The interval between valuesvalue
(tuple): Tuple of upper and lower bounds of selected rangevalue_throttled
(tuple): Tuple of upper and lower bounds of selected range throttled until mouseupbar_color
(color): Color of the slider bar as a hexadecimal RGB valuedirection
(str): Whether the slider should go from left to right ('ltr') or right to left ('rtl')disabled
(boolean): Whether the widget is editableformat
(str, bokeh.models.TickFormatter): Formatter to apply to the slider valuename
(str): The title of the widgetorientation
(str): Whether the slider should be displayed in a 'horizontal' or 'vertical' orientation.tooltips
(boolean): Whether to display tooltips on the slider handlerange_slider = pn.widgets.EditableRangeSlider(
name='Range Slider', start=0, end=math.pi, value=(math.pi/4., math.pi/2.),
step=0.01)
range_slider
Here the value
has no bounds and can exceed end
and go below start
. If value
should be fixed to a certain range it can be set with fixed_start
and fixed_end
:
range_slider.fixed_start = -1
The value
of the widget returns a tuple of float values that can be read out and set like other widgets:
range_slider.value
A custom format string or bokeh TickFormatter may be used to format the slider values:
from bokeh.models.formatters import PrintfTickFormatter
str_format = pn.widgets.EditableRangeSlider(name='Distance', format='0.0a', start=100000, end=1000000)
tick_format = pn.widgets.EditableRangeSlider(name='Distance', format=PrintfTickFormatter(format='%.3f m'))
pn.Column(str_format, tick_format)
Since the EditableRangeSlider
widget is a composite widget its options can only be controlled from Python. Try out the effect of these parameters interactively:
pn.Row(range_slider.controls(jslink=False), range_slider)