Я пытался работать с датами в боке, но не мог найти способ, затем я наткнулся на DateRangeSlider в боке, но не знаю синтаксиса, как его инициализировать и использовать. Мне нужна помощь в работе DateRangeSlider в боке! Нужны примеры с кодом.
Как работает DateRangeSlider в боке?
Ответы (3)
from datetime import date
from bokeh.models.widgets import DateRangeSlider
from bokeh.layouts import layout
from bokeh.io import curdoc
date_range_slider = DateRangeSlider(title="Date Range: ", start=date(2017, 1, 1), end=date.today(), value=(date(2017, 9, 7), date(2017, 10, 15)), step=1)
l = layout(children=[[date_range_slider]], sizing_mode='fixed')
curdoc().add_root(l)
curdoc().title = "DateRangeSlider Example"
Это должно создать ползунок диапазона дат с 1 января 2017 года по сегодняшний день (в данном случае 17 октября 2017 года).
Ниже приведены скриншоты этого примера:
Ползунок диапазона дат с выбранным диапазоном по умолчанию
Ползунок диапазона дат с полным диапазоном
По какой-то причине дата начала установлена на 01.01.2016, хотя указано значение 01.01.2017. Когда я устанавливаю 2 января, год меняется на 2017. Думаю, это ошибка.
РЕДАКТИРОВАТЬ: Работает, как и ожидалось, в последней версии боке.
Нашел решение проблемы, умею разбираться с датами. Угадайте как? не с DateRangeSlider! У меня есть эти даты в виде строк в рамке даты pandas. например lookup = pd.read_csv("file.csv", sep=',')
. Я ввожу данные для дат "от" и "до" для поиска через. TextInput, затем я конвертирую все строки даты и входные строки в объекты «pandas.tslib.Timestamp», используя функцию to_datetime()
, например lookup.Created_Date=pd.to_datetime(lookup['Created_Date'])
, где поиск — это мой фрейм данных pandas. Затем я могу сравнить и отобразить необходимые результаты: D.
В более новых версиях боке есть ползунок под названием DateSlider
, который делает то, что вы хотите. В примере с @Aarvi это
date_slider = DateSlider(title="Date Range: ", start=date(2017, 1, 1), end=date.today(), value=date(2017, 9, 7), step=1)