将 panel.widgets.tables.Tabulator 转换为 layoutDOM
Convert panel.widgets.tables.Tabulator to layoutDOM
我是 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
对象,而图表是一个 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
因此,虽然理论上您可以在 Tabulator 上使用 .get_root()
或 .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()
我是 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
对象,而图表是一个 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
因此,虽然理论上您可以在 Tabulator 上使用 .get_root()
或 .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()