繁体   English   中英

如何基于另一个列值格式化bokeh DataTable单元格?

[英]How to format a bokeh DataTable cell based on another column value?

拜。

我正在使用bokeh服务器(版本0.12.13)开发应用程序,并且我有一个带有几列的DataTable小部件。 其中之一是对问题开放天数的度量,而另一个是对完成该问题的天数的估计。

在某些情况下,未解决问题的天数超过了估计的天数,如果发生这种情况,我想将估计的天数列涂成红色。

我尝试使用“ widget.HTMLTemplateFormatter”,但是我还没有弄清楚如何访问另一个列值进行比较并确定是否将单元格涂成红色。

有谁知道如何解决这个问题?

您可以在下划线js代码中定义javascript函数,以有条件地为每个单元格着色。 可以访问链接到表的数据源中的每个字段。

from bokeh.models import ColumnDataSource
from bokeh.models.widgets import DataTable, TableColumn, HTMLTemplateFormatter
from bokeh.io import show

dict1 = {'estd':[1]*6,
         'actd':[1, 1, 1, 2, 2, 2],
         'z'   :[3, 3, 3, 3, 3, 3]}

source = ColumnDataSource(data=dict1)

template="""
<b><div style="background:<%= 
    (function colorfromint(){
        if(actd > estd){
            return("Red")
        }
        else{
            return("White")
        }
     }()) %>;">
<%= (value).toFixed(1) %></div></b>
"""

formater =  HTMLTemplateFormatter(template=template)
columns = [
    TableColumn(field="estd", title="Estimated Days"),
    TableColumn(field="actd", title="Actual days",formatter=formater),
    TableColumn(field="z", title="z")
]

data_table = DataTable(source=source, columns=columns, width=800)

show(data_table)

如果数据不变,则可以使用python代码定义颜色,请参见此处的第二个示例: 如何使用HTMLTemplateFormatter调整bokeh数据表中的数字格式?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM