У меня проблемы с выяснением того, как отформатировать боке RangeSlider
в datetime и показывать только текущие секунды (как показывает ось x). У меня есть график с датой и временем по оси x, и я реализовал RangeSlider, который автоматически обновляет свой диапазон до текущего диапазона графика, который передается с текущим временем по оси x. Я пытался использовать DateRangeSlider
, но, увы, это не сработало, так как я обновляю положение Spans с помощью значения Slider.
Также необходимо отформатировать Delta Spans так, чтобы показать только разницу в секундах с этими промежутками на графике.
И простите, я новичок во всем этом.
my_figure = figure(plot_width=800, plot_height=400, x_axis_type='datetime')
test_data = ColumnDataSource(data=dict(x=[0], y=[0]))
line = my_figure.line("x", "y", source=test_data)
############ Slider and Span ##################
x_slider = RangeSlider(start=0, end=10, value=(0,10), step=0.1, title='time', show_value=False)
xmin_span = Span(location=x_slider.value[0], dimension='height')
xmax_span = Span(location=x_slider.value[1], dimension='height')
my_figure.add_layout(xmin_span)
my_figure.add_layout(xmax_span)
############ Difference of Spans #############
deltatime = str(x_slider.value[1] - x_slider.value[0])
htmltext_time = """
<hr />
<h4 style="text-align: center;">Δt =""" + deltatime + """s</h4>
<hr />
<p style="text-align: center;"> </p>
"""
########## Text #############
deltat = Div(text=htmltext_time)
########## Callbacks for updating Slider, Spans and Text ##########
x_slider.callback = CustomJS(args=dict(xmin_span=xmin_span, xmax_span=xmax_span, deltat=deltat), code=
"""
xmin_span.location = cb_obj.value[0];
xmax_span.location = cb_obj.value[1];
var deltanum = cb_obj.value[1] - cb_obj.value[0];
deltatime = deltanum.toFixed(3);
deltat.text = `<hr />
<h4 style="text-align: center;">Δt = ${deltatime}s</h4>
<hr />
<p style="text-align: center;"> </p>`;
""")