带有 AjaxDataSource 的 Bokeh DataTable 未获取或更新

Posted

技术标签:

【中文标题】带有 AjaxDataSource 的 Bokeh DataTable 未获取或更新【英文标题】:Bokeh DataTable with AjaxDataSource not fetching or updating 【发布时间】:2017-07-13 14:47:49 【问题描述】:

我正在为 JSON REST API 构建仪表板,我想从服务器获取元素列表,在表格中将其可视化,然后与之交互。

我修改了Bokeh Data Table Example 以使用 AjaxDataSource 而不是 ColumnDataSource。

生成的代码是这样的:

from datetime import date
from random import randint

from bokeh.models import AjaxDataSource
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn
from bokeh.models.layouts import WidgetBox
from bokeh.plotting import show

source=AjaxDataSource(data_url="http://127.0.0.1:8000/dates", polling_interval=200)

#############
# Create data dict for the source, could be empty, filled with random data for testing
#############

source.data=dict( dates=[date(2017, 2, i+1) for i in range(10)],
        downloads=[randint(0, 100) for i in range(10)])

columns = [
        TableColumn(field="dates", title="Date", formatter=DateFormatter()),
        TableColumn(field="downloads", title="Downloads"),
    ]
data_table = DataTable(source=source, columns=columns, width=400, height=280)

show(WidgetBox(data_table))

很遗憾,根本没有联系到服务器,表格还是显示了我填写的样本数据,看看发生了什么。

如果我使用带有 AjaxDataSource 的绘图,它会正确更新,每个轮询间隔都会联系服务器

【问题讨论】:

【参考方案1】:

我遇到了完全相同的问题。如果您使用散景版本 0.13.0,这不再是问题。我升级后,它工作。请参阅本网站的最后一条评论。 https://github.com/bokeh/bokeh/issues/7937

【讨论】:

以上是关于带有 AjaxDataSource 的 Bokeh DataTable 未获取或更新的主要内容,如果未能解决你的问题,请参考以下文章

使用其他元素更新 pandas-bokeh 图表

具有半透明背景的 Python Bokeh Hovertool

如何在 Bokeh 仪表板中显示和更新打印语句列表?

从 Bokeh Google Maps 包装器 (fitBounds()) 调用 Javascript 方法

散景 NumerFormatter 瑞士法郎

在 Flask 中调制 Bokeh 服务器