将 panel.widgets.tables.Tabulator 转换为 layoutDOM

Posted

技术标签:

【中文标题】将 panel.widgets.tables.Tabulator 转换为 layoutDOM【英文标题】:Convert panel.widgets.tables.Tabulator to layoutDOM 【发布时间】:2021-11-13 20:16:59 【问题描述】:

我是 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

【问题讨论】:

【参考方案1】:

因此,虽然理论上您可以使用 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()

【讨论】:

以上是关于将 panel.widgets.tables.Tabulator 转换为 layoutDOM的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等

如何将视频文件转换格式

sh 一个将生成CA的脚本,将CA导入到钥匙串中,然后它将创建一个证书并与CA签名,然后将其导入到

python怎么将0写入文件?

如何将CMD窗口背景改成透明?