0

我是 Bokeh 的新手,如果我弄错了术语,我深表歉意。

我有一个简单的仪表板,我正在尝试使用制表符将图表添加到页面文档

基本设置如下

from bokeh.models import Select, Panel  
from bokeh.models.widgets import Tabs

import my_func from irrelevant_code 

chart = my_func()  # this is a tabulator object

tab1 = Panel(child = summary_layout, title="Summary") 
tab2 = Panel(child = chart, title="Chart")
tabs = Tabs(tabs=[tab1, tab2])

document = curdoc()
document.add_root(tabs)

这遇到了一个问题,因为Panel期望一个LayoutDOM对象而图表是一个panel.widgets.tables.Tabulator对象。

如何将图表转换为 layoutDOM 对象?

我得到的具体错误是

*** ValueError: failed to validate Panel(id='1212', ...).child: expected an instance of type LayoutDOM, got Tabulator(formatters={'testDate': DateForm...}, groups={'testGroup': ['col1',...}, selectable='checkbox', selection=[0, 1, 2, 3, 4, ...], titles={'col1': 'Column 1', ...}, value=   val1 val2 v...) of type Tabulator
4

1 回答 1

1

因此,虽然理论上您可以使用 Tabulator 上的.get_root()or.get_model()方法将 Panel 对象转换为 Bokeh 对象,但我通常建议您只使用 Panel,例如您的示例可以写成:

import panel as pn

import my_func from irrelevant_code 

chart = my_func()  # this is a tabulator object

tabs = pn.Tabs(('Summary', summary_layout), ('Chart', chart))

tabs.servable()
于 2021-09-20T08:19:12.873 回答