我是Bokeh的新手,所以如果我把术语弄错了,很抱歉。
我有一个简单的仪表板,我正在尝试使用制表器向页面docs添加一个图表
基本设置如下
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对象,而chart是一个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发布于 2021-09-20 08:19:13
所以,虽然在理论上你可以在制表器上使用.get_root()或.get_model()方法来将面板对象转换为Bokeh对象,但我通常建议你只使用面板,例如,你的例子可以写成:
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()https://stackoverflow.com/questions/69249061
复制相似问题