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

Posted

技术标签:

【中文标题】如何在 Bokeh 仪表板中显示和更新打印语句列表?【英文标题】:How can I show and update a list of print statements in a Bokeh dashboard? 【发布时间】:2019-01-29 04:00:09 【问题描述】:

有没有办法创建散景仪表板的一部分来显示 python 会话的控制台输出?

我正在创建一个带有散景的前端仪表板,该仪表板运行一个可能需要一段时间并执行很多工作的过程。我想要一个部分来显示一些沿途执行的打印语句。理想情况下,我希望有一个小部件类型的对象,可以直接在仪表板中显示输出。

【问题讨论】:

您可以创建一个Div 元素并根据需要更新内容 @ChesuCR 谢谢,我看看那个。 如果可以回答的 [bokeh] 问题得到答案,这对维护者很有帮助。使用Div 确实是一个合适的解决方案。你们当中有人会将该信息添加为真正的答案吗? @ChesuCR 或 Nate,如果您有时间,如果您可以发布一个包含如何实现此目标的最小示例的答案,将会非常有帮助。 当然@joelostblom,我稍后会发布一些东西 【参考方案1】:

只是一个简单的示例,使用列表 os 消息的内容(使用 html 代码)更新 Div 元素。我认为您可以根据自己的需要进行调整:

from bokeh.layouts import column
from bokeh.io import curdoc
from bokeh.models import Button
from bokeh.models.widgets import Div

div = Div(
    text='',
    width=200,
    height=200
)

msg_list = []

def update_div():
    msg_num = len(msg_list)
    msg_list.append(': New message'.format(msg_num))
    m = ''
    for msg in msg_list:
        m += '<li></li>'.format(msg)
    div.text = '<ul></ul>'.format(m)

bt = Button(
    label="Update div",
    button_type="success",
    width=50
)

bt.on_click(update_div)

curdoc().add_root(
    column(children=[bt, div])
)

【讨论】:

以上是关于如何在 Bokeh 仪表板中显示和更新打印语句列表?的主要内容,如果未能解决你的问题,请参考以下文章

将小部件与 pandas_bokeh 结合起来;收到“ValueError”消息

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

散景仪表板布局;小部件布局不显示

保存 Bokeh 仪表板(独立),其中包含内部制作的所有数据

将来自 bupaR 的动画流程图集成到 Python 中的 Bokeh 仪表板中;有办法吗?

使用 Python 的 Bokeh 和 Folium 模块创建的仪表板/地图是不是安全?数据是不是上传到任何外部服务器?