如何显示日期选择器小部件?

4

I have the following code:

from bokeh.plotting import curdoc
from bokeh.layouts import widgetbox
from bokeh.layouts import column as bokehCol
from bokeh.models.layouts import Column
from bokeh.models.widgets import DatePicker
from datetime import date
from datetime import timedelta as td
from datetime import datetime as dt
from bokeh.io import output_notebook
from bokeh.plotting import show

output_notebook()

crnt_date=dt.now()

dt_pckr_strt=DatePicker(title='Select start of sync date',min_date=date(2017,1,1),max_date=date.today())

def callback(attr,old,new):
    print(type(old))
    print('old was {} and new is {}'.format(old,new))

dt_pckr_strt.on_change('value',callback)
curdoc().add_root(bokehCol(dt_pckr_strt))
show(widgetbox(dt_pckr_strt, width=300))

输出显示的是奇怪的日期选择器,而不是常规的日期选择器。我认为问题出在show函数上,我可能犯了一些错误。请问我错在哪里?
2个回答

1

这段代码对我很有效(解决了将Bokeh服务器嵌入到Jupyter Notebook中的问题)

from bokeh.plotting import curdoc
from bokeh.layouts import widgetbox
from bokeh.layouts import column as bokehCol
from bokeh.models.layouts import Column
from bokeh.models.widgets import DatePicker
from datetime import date
from datetime import timedelta as td
from datetime import datetime as dt
from bokeh.io import output_notebook
from bokeh.plotting import show
from bokeh.application import Application
from bokeh.application.handlers import FunctionHandler

output_notebook()

def modify_doc(doc):

    crnt_date=dt.now()

    dt_pckr_strt=DatePicker(title='Select start of sync date',min_date=date(2017,1,1),max_date=date.today())


    def callback(attr,old,new):
        print(type(old))
        print('old was {} and new is {}'.format(old,new))



    dt_pckr_strt.on_change('value',callback)

    doc.add_root(bokehCol(dt_pckr_strt))


app = Application(FunctionHandler(modify_doc))
show(app) #notebook_url="localhost:8888"

enter image description here


它说Application未定义 - harvpan

0

你并没有做错什么(或多或少——如果你想使用真正的Python回调函数,例如on_change,你将不得不嵌入一个Bokeh服务器应用程序,但这是一个单独的问题)。然而,似乎笔记本环境中的某些东西阻止了Bokeh日期选择器小部件的正常运行。在使用output_file创建的独立HTML文件中相同的代码具有工作日期选择器。我建议您在Bokeh问题跟踪器上提交错误报告,并提供所有这些信息。不幸的是,我目前没有任何简单的解决方法可以建议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接